c# - Parallel.ForEach 和 ParallelEnumerable.ForAll 之间的区别

标签 c# .net linq c#-4.0 plinq

<分区>

我有一组模型类,我不想将每个类单独映射到 View 模型类。

我可以使用 Parallel.ForEachParallelEnumerable.ForAll,那么两者之间有什么区别(如果有)

我在 MSDN 上找不到任何内容。

最佳答案

I can use Parallel.ForEach or ParallelEnumerable.ForAll, so what is the difference between the 2, if any?

Parallel.ForEach相当于使用 foreach在正常代码中。

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

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

一般来说,我倾向于选择Parallel.ForEach ,作为 ForAll 的唯一目的是造成副作用。这有一些缺点,如described in detail by Eric Lippert .

关于c# - Parallel.ForEach 和 ParallelEnumerable.ForAll 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974114/

相关文章:

c# - WPF MVVM在Enter键按下时取消选择文本框

.net - Web.config 转换添加树

c# - 如何递归查询 Winform 的所有子控件?

c# - 将 LINQ 查询包装到中继器

c# - Linq 重复 List<T> 中给定范围的每第 n 个元素

c# - 连接到 FTP 并搜索 .txt 中的文件

c# - 在 out 参数中使用未分配的局部变量

c# - 如何让WCF服务监听特定端口并接收HTTP请求

.net - 如果字体从粗体更改为常规,则 TreeView 文本会被剪裁

c# - 接受匿名方法(Action<>、Func<>)作为参数有哪些安全隐患?