'令人愉快的并行'PLINQ查询

时间:2012-02-02 18:37:09

标签: c# .net plinq

此示例来自PLINQ MSDN文章:

http://msdn.microsoft.com/en-us/library/dd997399.aspx

var queryA = from num in numberList.AsParallel()
         select ExpensiveFunction(num); //good for PLINQ

var queryB = from num in numberList.AsParallel()
         where num % 2 > 0
         select num; //not as good for PLINQ

为什么queryB不被认为是'令人愉快的并行'?看起来这对于拆分多个线程是理想的,因为列表中的每个元素都独立于其他元素。

1 个答案:

答案 0 :(得分:4)

第二个例子不是小型化的好选择的原因仅仅是因为在多个线程上分割工作所产生的开销通常很高,因此并行完成的工作必须超过这个开销。廉价的操作不是一个好的选择。