在分析我的代码后,我在更大的循环内有以下代码我发现在完成Stop()
方法需要很长时间后,所有Parallel.For增益的执行速度都会丢失。有什么办法可以改善吗?也许打电话Thread.Sleep()
?Slow Parallel.For中断
谢谢。
Parallel.For(0, 1000, (i, loopState) =>
{
if (a == b)
loopState.Stop();
});
在分析我的代码后,我在更大的循环内有以下代码我发现在完成Stop()
方法需要很长时间后,所有Parallel.For增益的执行速度都会丢失。有什么办法可以改善吗?也许打电话Thread.Sleep()
?Slow Parallel.For中断
谢谢。
Parallel.For(0, 1000, (i, loopState) =>
{
if (a == b)
loopState.Stop();
});
请添加代码外循环。另外请记住,Stop()可能正在等待所有线程加入? (我在这里猜测)。 – 2010-08-30 11:01:15
这不是我的经验,在任何情况下,我都希望Parallel.For针对并行执行进行优化,而不是快速取消。 – 2010-08-30 11:14:53
你的代码在做什么?你提供的作品是无用的。什么是a和b,什么是1000?请发布更多的代码和描述 – Andrey 2010-08-30 11:19:22