.net - 慢速并行。用于中断

标签 .net parallel-extensions

我在一个更大的循环中包含以下代码,在分析我的代码后,我发现所有 Parallel.For 执行速度的增益都会在 Stop() 方法完成所需的很长时间内丢失。有什么办法可以改善这一点吗?也许调用Thread.Sleep()

谢谢。

Parallel.For(0, 1000, (i, loopState) => 
{ 
   if (a == b)
       loopState.Stop(); 
}); 

最佳答案

我认为你应该使用loopState.Break()方法,因为它与break关键字并行。 Stop 方法设置 IsStopped 标志,以便其他迭代可以检查此标志并在方便时停止。它不会停止循环。

参见StopBreak在msdn上

关于.net - 慢速并行。用于中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599718/

相关文章:

.net - 如何在不从.ShowDialog返回的情况下隐藏模式对话框?

.net - 如何使用连接 PLINQ 现有的 LINQ 查询?

c# - System.Threading.ThreadAbortException 在新线程中引发

c# - Parallel.ForEach 不断产生新线程

多核上的 Java 并行执行

c# - 将现有 Azure 帐户与 Azure AD 集成

c# - 是否有可直接在应用程序窗口上执行 OCR 的免费 .NET OCR 库?

c# - 使用 SimpleMembershipProvider 更新自定义用户配置文件字段?

c# - .NET 中是否有 OpenFileOrFolderDialog 对象?

c# - WCF 并行模拟