任务WhenAll异常处理

cub*_*nyc 2 c#

我希望在某些任务可能失败的情况下使用Task.WhenAll,但我仍然需要其余已完成任务的结果数据。

根据MSDN

如果提供的任何任务以故障状态完成,则返回的任务也将以“故障”状态完成,其中,其异常将包含每个提供的任务中未包装的异常集的集合。

但是,没有说的是Task.WhenAll是否仍将在该实例中等待其余Tasks完成。谁能对此问题提供任何澄清?

Sam*_*nen 5

如文档所述:

创建一个将在可枚举集合中的所有Task对象都完成后完成的任务。

因此,它将等待所有任务完成,而不管任何任务是否已引发异常或已被取消。然后它将汇总可能的取消和异常并定义其状态。给定任务的结果将包含在原始任务以及例外和取消中。