根据MSDN Task.WaitAll在执行至少一个Task实例期间抛出异常时立即通过AggregateException。 我需要等待所有任务完成处理每个抛出的异常。所以我需要做类似的事情:
while (true)
{
try
{
Task.WaitAll(tasks);
break; //only if no exception is occured
}
catch (AggregateException aex)
{
//exceptions handling...
}
}
还是更合理的方式?
答案 0 :(得分:6)
文档并未说明WaitAll
会在发生一个异常时立即返回。反之亦然:它始终等待所有任务完成。
等待所有提供的Task对象完成执行。
这已经是您想要的行为了。