我正在编写一个用于生成素数的并行循环
Parallel.For(0, maxNumber, (i, loopState) =>
{
if (IsPrime((UInt32)i))
{
Interlocked.Increment(ref primesFound);
if (primesFound > maxPrimes)
{
Console.WriteLine(“Last prime found: {0:N0}”,i);
loopState.Stop();
}
}
});
有人可以解释一下这是如何工作的,特别是loopstate在这里有什么用途,如果我不想要它会怎么样。
答案 0 :(得分:1)
loopState
为您提供了 Parallel.ForEach
,它是一个ParallelLoopState
实例,可让您执行停止迭代等操作 - 当您找到所需的所有数据时非常有用。如果你不需要它,只需使用不暴露它的重载:
Parallel.For(0, maxNumber, i => {
// ....
});