Parallel.Foreach异常并取消

时间:2011-02-22 08:23:59

标签: c# exception-handling task-parallel-library

我试图找出Parallel.Foreach的异常和取消工作方式。所有示例似乎都涉及任务。

Parallel.Foreach中的异常会发生什么? - 我是否将整个循环包装在try / catch(AggregateException)中? - 循环中的所有其他任务(即使是尚未启动的任务)是否会在异常被捕获之前运行完成?

CancelationToken的相同问题

1 个答案:

答案 0 :(得分:15)

简而言之,每个循环中的异常都会聚合并在AggregateException下显示。每当发生异常时,允许完成启动的循环,但不会启动其他循环。 ForEach确实有很多overloads允许一个人拥有本地init&最后块和体动作也需要ParallelLoopState循环体代码可用于检查另一个循环上的异常,然后在需要时自行协作。

请参阅提供其他信息的this article