Parallel.ForEach vs AsParallel().ForAll

use*_*687 16 .net task-parallel-library

我有一个庞大的集合,我想以平行的方式处理每个对象.同步地执行相同操作通常涉及简单的"foreach".

只是想知道在我的场景中使用什么,即Parallel.ForEach或MyCollection.AsParallel().ForAll().

你能否解释一下使用一对一的好处.

svi*_*ick 18

我看待它的方式,如果你想要做的就是并行化a foreach,你应该使用它的并行版本Parallel.ForEach().

ParallelEnumerable.ForAll()是针对具有LINQ查询后跟a的特定情况,foreach并且您希望并行化它们.因此,您所做的是通过添加并行化LINQ查询AsParallel(),然后foreach通过将其更改为并行化ForAll().


Kir*_*kiy 6

时间两者并挑选胜利者.

我发现Parallel.ForEach在大多数令人愉快的并行场景中表现更好.它似乎使用更先进的工作平衡模型.PLINQ主要用于并行化查询.