标签: .net parallel-extensions
我在一个更大的循环中有以下代码,在分析我的代码之后,我发现所有Parallel.For执行速度的增加在Stop()方法完成的很长时间内丢失了。有没有办法改善这个?也许打电话给Thread.Sleep()?
Stop()
Thread.Sleep()
感谢。
Parallel.For(0, 1000, (i, loopState) => { if (a == b) loopState.Stop(); });
答案 0 :(得分:3)
我认为您应该使用loopState.Break()方法,因为它是break关键字的参数。 Stop方法设置IsStopped标志,以便其他迭代可以检查此标志并在方便时停止。它不会停止循环。
loopState.Break()
break
Stop
IsStopped
请参阅msdn上的Stop和Break