处理任务状态情况

时间:2013-08-22 12:34:28

标签: .net task-parallel-library scheduled-tasks task

我有一个任务列表,大多数运行完成,其他任务出现故障。如果任务是Faulted,我会处理这种情况。但是,我想在所有任务完成后打印所有任务的结果。但是列表中的一些任务也是出错的,所以我试图找出正确的方法来处理这个问题(方法中的if语句)。

这是我的代码:

private void CompleteTasks(Task[] tasks)
{
    if(tasks.All(t => t.Status == (TasksStatus.RanToCompletion) || t.Status == (TaskStatus.Faulted)))
    {
        //Print each result
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用Task.Exception属性找到任务的异常。如果存在异常,则会将其包含在AggregateException

请参阅MSDN Task.Exception

以及Exception Handling (Task Parallel Library)

任务并行库为等待所有任务完成所提供的机制是Task.WaitAll