Task.WaitAll,如何查找导致AggregateException的任务

jga*_*fin 4 c# task-parallel-library

假设我得到以下代码:

var tasks = BuildTaskList();
try
{
    Task.WaitAll(tasks.ToArray());
}
catch (AggregateException exception)
{

}
Run Code Online (Sandbox Code Playgroud)

我怎么知道哪个任务引发了哪些例外exception.InnerExceptions

Mat*_*ith 7

你仍然有列表Tasks,每个Task都有一个Exception属性.使用它你可以找出哪些例外属于哪个Task.

但是,如果可以的话,最好使用Task.WhenAll或者TaskFactory.ContinueWhenAll阻止等待.

  • 不,每个"任务"都不知道其他任务,它只会有自己的异常. (2认同)