我有一个Model类的集合,我不想将每个类分别映射到View Model类。
我可以使用Parallel.ForEach
或ParallelEnumerable.ForAll
,那么2之间有什么区别?如果有的话?
我在MSDN上找不到任何内容。
答案 0 :(得分:5)
我可以使用Parallel.ForEach或ParallelEnumerable.ForAll,那么2之间有什么区别?如果有的话?
Parallel.ForEach
是在普通代码中使用foreach
的等价物。
ParallelEnumerable.ForAll
方法实际上与List<T>.ForEach
等效。
虽然ForAll
方法要求您已经使用PLINQ,但两者的执行和工作方式类似,因为您需要ParallelEnumerable
。 Parallel.ForEach
可以直接使用任何IEnumerable<T>
。
一般来说,我倾向于选择Parallel.ForEach
,因为ForAll
的唯一目的是引起副作用。这有一些缺点,如described in detail by Eric Lippert。