"foreach with task.Wait" 和 Task.WaitAll 之间的区别



两者之间有什么区别:

foreach(Task task in someTasks)
{
    task.Wait();
}

Task.WaitAll(sometasks);

从本质上讲,从最终结果的角度来看,他们应该做同样的事情吗?

区别在于异常处理。如果task.Wait();抛出,则退出foreach循环。 WaitAll将捕获所有异常并抛出包含它们的AggregateException

另请参阅:Task.WaitAll 和 Exceptions

最新更新