我有一个任务列表,大多数运行完成,其他任务出现故障。如果任务是Faulted,我会处理这种情况。但是,我想在所有任务完成后打印所有任务的结果。但是列表中的一些任务也是出错的,所以我试图找出正确的方法来处理这个问题(方法中的if语句)。
这是我的代码:
private void CompleteTasks(Task[] tasks)
{
if(tasks.All(t => t.Status == (TasksStatus.RanToCompletion) || t.Status == (TaskStatus.Faulted)))
{
//Print each result
}
}
答案 0 :(得分:0)
您可以使用Task.Exception
属性找到任务的异常。如果存在异常,则会将其包含在AggregateException
。
以及Exception Handling (Task Parallel Library)
任务并行库为等待所有任务完成所提供的机制是Task.WaitAll。