我想获取一组对象并在所有对象上运行例程。订单无关紧要,它们都是独立的操作,所以我想我会在集合上调用Parallel。ForEach。但是我想在完成后跟进整个事情。
ContinueWith等效或ForEach的重载在哪里需要另一个操作/任务在完成时运行?我是否坚持轮询ParallelLoopResult。IsCompleted值,直到它恢复为真?
ContinueWhenAll方法总是需要一个任务数组。我是否应该将对象集合投射到每个新任务中?然后,我将如何同时并行地启动一系列任务?
This question类似,但我认为较旧的3.5 TPL Extensions。如果需要,我愿意接受任务并行库之外的解决方案。
答案 0 :(得分:9)
Parallel.ForEach
阻塞直到它完成,所以你可以在方法调用之后做任何你需要的事情。