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

时间:2014-03-05 07:34:27

标签: c# .net multithreading task-parallel-library wait

有什么区别:

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

Task.WaitAll(sometasks);

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

1 个答案:

答案 0 :(得分:5)

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

另请参阅:Task.WaitAll and Exceptions