PLINQ结果错误,并且在不同的运行中有所不同

Ada*_*mar 0 c# plinq

我正在学习PLINQ.我尝试了在网站上给出的例子.但是我可以看到结果是错误的,并且当我多次重新运行程序时也会有所不同.首先它不给出所有素数,其次它只给出9591个随机素数.

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;

int[] primes = parallelQuery.ToArray();
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助!

Kae*_*ber 7

有9592个素数低于100,000,您的范围不包括2,这是素数.

素数的顺序会有所不同,因为您不对它们进行排序,也无法控制PLINQ如何将工作拆分为并行块.