我在一个更大的循环中包含以下代码,在分析我的代码后,我发现所有 Parallel.For 执行速度的增益都会在 Stop()
方法完成所需的很长时间内丢失。有什么办法可以改善这一点吗?也许调用Thread.Sleep()
?
谢谢。
Parallel.For(0, 1000, (i, loopState) =>
{
if (a == b)
loopState.Stop();
});
最佳答案
我认为你应该使用loopState.Break()
方法,因为它与break
关键字并行。 Stop
方法设置 IsStopped
标志,以便其他迭代可以检查此标志并在方便时停止。它不会停止循环。
关于.net - 慢速并行。用于中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599718/