如何在完成后跟进Parallel.ForEach?

时间:2011-10-04 18:27:35

标签: .net .net-4.0 task-parallel-library

我想获取一组对象并在所有对象上运行例程。订单无关紧要,它们都是独立的操作,所以我想我会在集合上调用ParallelForEach。但是我想在完成后跟进整个事情。

ContinueWith等效或ForEach的重载在哪里需要另一个操作/任务在完成时运行?我是否坚持轮询ParallelLoopResultIsCompleted值,直到它恢复为真?

ContinueWhenAll方法总是需要一个任务数组。我是否应该将对象集合投射到每个新任务中?然后,我将如何同时并行地启动一系列任务?

This question类似,但我认为较旧的3.5 TPL Extensions。如果需要,我愿意接受任务并行库之外的解决方案。

1 个答案:

答案 0 :(得分:9)

Parallel.ForEach阻塞直到它完成,所以你可以在方法调用之后做任何你需要的事情。