9得票3回答
.NET 4中的Parallel.ForEach和PLINQ:它们会超负荷线程池并导致应用程序性能下降吗?

在我的代码中越来越多地使用Parallel.ForEach和PLINQ,越来越多的人对我提出了问题和代码审查反对意见。所以我想知道是否有任何理由不在每个LINQ语句上都使用PLINQ?运行时不能聪明到开始生成这么多线程(或从线程池中消耗那么多线程),以至于应用程序性能实际上会降低而不是提高吗?...

15得票2回答
PLINQ是否有异步版本?

我希望能够在处理项目时以一定的并行度对数据流执行查询。通常情况下,我会使用 PLINQ 实现这一点,但我的工作项不是 CPU 绑定,而是 IO 绑定,我想要使用异步 IO。PLINQ 不支持异步工作。 有什么聪明的方法可以运行类似于 PLINQ 的查询,但具有异步工作项? 以下是问题的更详细...

13得票9回答
PLINQ表现不如普通LINQ。

令人惊讶的是,使用PLINQ在我创建的小测试案例中并没有带来收益;事实上,它甚至比普通的LINQ还要更差。 以下是测试代码: int repeatedCount = 10000000; private void button1_Click(object sender, Even...

9得票2回答
PLINQ是否有任何真正的好处?

最近我对Linq和Plinq进行了一些措施。但我无法看出 Plinq 真正有哪些显著优势。 我找到了许多示例,比如: Enumerable.Range(0, 10000).AsParallel().ForAll(_ => Thread.Sleep(50000)); 这只是一个毫无...

8得票1回答
如何编写适用于PLINQ的线程感知扩展函数?

有人知道如何编写一个返回ParallelQuery的扩展函数在PLINQ中吗? 更具体地说,我有以下问题:我想在PLINQ查询中执行一个需要引擎的转换,该引擎的创建代价高昂,且不能同时访问。 我可以这样做: var result = source.AsParallel ().Select...

25得票1回答
在PLINQ中,.AsSequential()和.AsOrdered()有什么区别?

我似乎无法理解AsSequential和AsOrdered之间的区别。我查看了MSDN上对这两者的文档,并搜索了互联网上的示例,但我只是一个简单的鞋匠,无法明确理解发生了什么。 如果可能的话,有人能否解释一下何时使用AsSequential与AsOrdered,必要时解释结果会有什么不同?

7得票3回答
PLINQ AsParallel()是否可以设置较低的优先级?

我是否可以以比其他查询低的优先级运行一些使用PLINQ AsParallel()的查询? (或者有些查询是否可以以较高的优先级运行) 这是否可通过PLinq实现,还是我必须避免使用PLINQ并自己完成所有工作? 编辑/更新: 是否可以调用 Thread.Sleep(0) 当我想要归档...

16得票2回答
并行Linq查询优化

最近我一直在使用无副作用的方法来重构代码,以便使用并行 Linq 加速程序运行。但是在这个过程中,我多次发现惰性计算会使事情变得更糟,而不是更好,因此我想知道是否有任何工具可以帮助优化并行 Linq 查询。 我之所以问这个问题,是因为最近我通过修改某些方法并在特定的关键位置添加了 AsPar...

11得票1回答
"使用static"会导致AsParallel失效

在以下代码中,如果取消注释“using static”行,查询将不会并行运行。为什么? (Visual Studio Community 2019,.Net Core 3.1 / .Net 4.8)using System; using System.Diagnostics; using Sy...

16得票5回答
你正在使用并行扩展吗?

我希望这不是滥用stackoverflow;最近我在这里看到一些有关并行扩展的很棒的问题,这引起了我的兴趣。 我的问题是: 你正在使用并行扩展吗?如果是,你是怎么使用的? 我叫Stephen Toub,是微软的并行计算平台团队成员。我们负责Parallel Extensions。我一直很想...