什么是以下两者的区别:
foreach(Task task in someTasks)
{
task.Wait();
}
并且
Task.WaitAll(sometasks);
从最终结果的角度来看,实际上它们应该是在做同样的事情吗?
什么是以下两者的区别:
foreach(Task task in someTasks)
{
task.Wait();
}
并且
Task.WaitAll(sometasks);
区别在于异常处理。如果task.Wait();
抛出异常,foreach
循环会退出。而WaitAll
会捕获所有异常并抛出一个包含它们的AggregateException
。
另请参见:Task.WaitAll和异常