当我需要一些并行处理时,我通常会这样做:
static void Main(string[] args)
{
var tasks = new List<Task>();
var toProcess = new List<string>{"dog", "cat", "whale", "etc"};
toProcess.ForEach(s => tasks.Add(CanRunAsync(s)));
Task.WaitAll(tasks.ToArray());
}
private static async Task CanRunAsync(string item)
{
// simulate some work
await Task.Delay(10000);
}
我遇到过这样的情况,它没有并行处理项目,不得不使用Task.Run它来强制它在不同的线程上运行。
我错过了什么?
慕的地8271018
相关分类