此示例来自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不被认为是'令人愉快的并行'?看起来这对于拆分多个线程是理想的,因为列表中的每个元素都独立于其他元素。
答案 0 :(得分:4)
第二个例子不是小型化的好选择的原因仅仅是因为在多个线程上分割工作所产生的开销通常很高,因此并行完成的工作必须超过这个开销。廉价的操作不是一个好的选择。