在分析我的代碼後,我在更大的循環內有以下代碼我發現在完成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