C#5.0 - PLINQ(使用AsParallel()方法)

时间:2016-09-20 04:23:10

标签: c#

NutShell" C#5.0"我在下面的程序中看到了这本书:

// Calculate prime numbers using a simple (unoptimized) algorithm.
IEnumerable<int> numbers = Enumerable.Range (3, 100000-3);
var parallelQuery = from n in numbers.AsParallel()
                    where Enumerable.Range (2, (int) Math.Sqrt (n)).All (i => n % i > 0)
                    select n;

据我所知,在调用PLINQ的AsParallel()方法时,输入序列(数字)包含在基于ParallelQuery的并行序列中。这是因为AsParallel()是System.Linq.ParallelEnumerable中的扩展方法。提到AsParallel()方法会导致您随后调用的LINQ查询运算符绑定到ParallelEnumerable中定义的另一组扩展方法。

我的问题是,在上面是否有内部的Enumerable.Range()。All()方法,它定义了&#34;的条件,其中&#34;查询运算符,也在内部转换为ParallelEnumerable.Range()。All()在调用AsParallel()方法&#34;数字&#34; SQUENCE。请在此澄清我。谢谢。

0 个答案:

没有答案