PLINQ作为LINQ的扩展在.NET 4.0 Framework中添加。
答案 0 :(得分:35)
这是并行LINQ。这是在多核/多处理器系统上并行运行LINQ查询的一种方式,以便(希望)加速它们。
在MSDN Magazine中有一篇很好的文章。
对于当前的详细信息和计划,我建议您阅读Parallel Programming with .NET Team Blog上的文章。他们是实施并行扩展的团队,包括PLINQ。
答案 1 :(得分:15)
PLINQ是并行执行的LINQ,即使用当前计算机中的处理能力。
如果您的计算机具有2核(如双核处理器),您将获得语言集成查询操作员使用两个核心并行工作。
使用“only”LINQ,您将无法获得同样多的性能,因为标准语言集成查询运算符不会并行化您的代码。这意味着您的代码将以串行方式运行,而不会利用所有可用的处理器内核。
有许多PLINQ查询运算符能够使用众所周知的并行模式执行代码。
看一下我的博客文章,其中展示了使用AsParallel扩展方法在Parallel中运行简单的LINQ查询时获得的最快速度:
Parallel LINQ (PLINQ) with Visual Studio 2010/2012 - Perf testing
如果你想深入使用PLINQ,我建议你阅读:
答案 2 :(得分:10)
它是一个库,允许您进行正常的LINQ查询,将其划分为较小的任务,并利用处理器核心在多个线程上执行每个单独的任务。
答案 3 :(得分:3)
它允许您将.AsParallel添加到LINQ,以尝试使用尽可能多的处理器执行查询。很整洁,但你仍需要了解一下你的算法是否“可并行化” - 这不是魔术。
它基本上不需要管理线程池并管理同步从每个线程返回的结果 - 通常没有并行扩展库,您必须手动执行此操作。
答案 4 :(得分:1)
来自维基百科的Parallel Extensions:
并行LINQ(PLINQ)是LINQ的并发查询执行引擎,可以并行化对象(LINQ to Objects)和XML数据(LINQ to XML)上的查询执行。 PLINQ旨在通过使用查询来公开数据并行性。可以通过PLINQ并行化对作为查询实现的对象的任何计算。但是,对象需要实现IParallelEnumerable接口,该接口由PLINQ本身定义。在内部,它使用TPL执行。