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 スレッド)