等待异常处理完成所有任务

Ser*_*erG 4 .net c# exception-handling wait task-parallel-library

根据MSDN Task.WaitAll在执行至少一个Task实例期间抛出异常时立即通过AggregateException.我需要等待所有任务完成处理每个抛出的异常.所以我需要做类似的事情:

while (true)
{
    try
    {
        Task.WaitAll(tasks);
        break; //only if no exception is occured
    }
    catch (AggregateException aex)
    {
        //exceptions handling...
    }
}
Run Code Online (Sandbox Code Playgroud)

或者是一些更理性的方式?

usr*_*usr 6

WaitAll一旦发生一个异常,文档就不会说返回.反之亦然:它总是等待所有任务完成.

等待所有提供的Task对象完成执行.

这已经是您想要的行为.