对 AggregateException Handle 方法的混淆

cah*_*ins 5 c# resharper lambda task-parallel-library aggregateexception

ReSharper 给了我一个 CoVariantConversion 警告,所以我决定谷歌一下,看看如何解决它。我遇到了这段代码:

 // ReSharper disable CoVariantArrayConversion
 try
 {
    Task.WaitAll(taskList.ToArray());
 }
 catch (AggregateException ex)
 {
    ex.Handle(e => true);
 }
 // ReSharper restore CoVariantArrayConversion
Run Code Online (Sandbox Code Playgroud)

这部分让我感到困惑:

 ex.Handle(e => true);
Run Code Online (Sandbox Code Playgroud)

它有什么作用?我会认为它什么都不做。

Mat*_*ith 5

您是对的:可以删除该行并具有相同的效果(导致所有异常都被视为“已处理”),就好像该行在那里一样。

唯一有用的时候是如果 lambda 可以为某些异常返回 false(在这种情况下它不会)。


Ben*_*dEg 2

这表示异常已被处理,仅此而已。