两者之间有什么区别:
foreach(Task task in someTasks)
{
task.Wait();
}
和
Task.WaitAll(sometasks);
从本质上讲,从最终结果的角度来看,他们应该做同样的事情吗?
区别在于异常处理。如果task.Wait();
抛出,则退出foreach
循环。 WaitAll
将捕获所有异常并抛出包含它们的AggregateException
。
另请参阅:Task.WaitAll 和 Exceptions