4

我有一个模型类的集合,我不想将每个类单独映射到视图模型类。

我可以使用Parallel.ForEachor ParallelEnumerable.ForAll,那么 2 之间有什么区别(如果有的话)?

我在 MSDN 上找不到任何东西。

4

1 回答 1

7

我可以使用 Parallel.ForEach 或 ParallelEnumerable.ForAll,那么两者之间有什么区别(如果有的话)?

Parallel.ForEach相当于foreach在普通代码中使用。

ParallelEnumerable.ForAll方法实际上等效于List<T>.ForEach.

两者的执行和工作方式相似,尽管该ForAll方法要求您已经使用 PLINQ,因为您需要一个ParallelEnumerable. Parallel.ForEach直接关闭任何IEnumerable<T>.

一般来说,我更喜欢Parallel.ForEach,因为 的唯一目的ForAll是引起副作用。正如Eric Lippert 详细描述的那样,这有一些缺点。

于 2013-06-06T23:56:50.097 回答