我想要实现的是如下所示
List<Task> tasks = new List<Task>();
Parallel.For(1, 5, async (x) =>
{
Console.WriteLine($"blob {x} begin");
await Task.Delay(TimeSpan.FromMilliseconds(10));
Console.WriteLine($"blob {x} done");
tasks.Add(this_async_action_itself);
});
await Task.WhenAll(tasks);
我以为
tasks.Add(this);
可能有用,但它没有。
我知道我可以做其他选择
List<int> list = new List<int>();
for (int i = 0; i < 5; i++)
{
list.Add(i);
}
var tasks = list.Select(async item =>
{
Console.WriteLine($"blob {item} begin");
await Task.Delay(TimeSpan.FromMilliseconds(10));
Console.WriteLine($"blob {item} done");
});
await Task.WhenAll(tasks);
或者在更高级别的框架中,我可以使用
Parallel.ForEachAsync
。
我只是觉得这应该是可行的,想知道语法。