我很难理解loopState.Stop()
和loopState.Break()
。我已经阅读了 MSDN 和几篇关于它的帖子,但我仍然感到困惑。
我的理解是,每个迭代分区器都会为线程提供剩余的索引来处理并loopState.Stop()
停止所有线程并loopState.Break()
停止当前线程。
但是,让我们考虑以下情况:
Parallel.For(0, 100, (i, loopState) =>
{
if (i >= 10)
loopState.Break();
Debug.Write(i);
});
对于这个循环,我有以下结果:
0 25 1 2 3 4 5 6 7 8 9 10
我不知道为什么结果中有 10 个和 25 个数字。
任何人都可以帮忙吗?
PS我有i5 520M CPU(2核=> 4线程)