私はloopState.Stop()
とloopState.Break()
を理解するのが難しいです。私はそれについてMSDNといくつかの記事を読んだが、私はまだ混乱している。Parallelの中断を停止してください。
私が理解していることは、すべての反復分割プログラムがスレッドの残りのインデックスを処理し、loopState.Stop()
がすべてのスレッドを停止し、loopState.Break()
が現在のスレッドを停止することです。私は10と25の数字がある理由は、結果にはわかりません
0 25 1 2 3 4 5 6 7 8 9 10
:私は結果を休閑している。このループの
Parallel.For(0, 100, (i, loopState) =>
{
if (i >= 10)
loopState.Break();
Debug.Write(i);
});
:
ただし、次のような状況を考慮することができます。
誰でも手助けできますか?
P.S.私は5205M CPUを持っています(2コア=> 4スレッド)
したがって、loopState.Break()はすべてのスレッドを終了しますか?私はloopState.Stop()がそれをすることを使用します。 –
私の前のコメントを明確にするために、最初の2つのループがどのように停止するのか理解していますが、なぜ2つの他のスレッドも起動しないのですか? Breakは1つ以上のスレッドを終了できますか?もしそうなら、それはどうやって? –
停止対ブレイクについての良い答えを参照してください:http://stackoverflow.com/questions/8818203/what-is-difference-between-loopstate-break-loopstate-stop-and-cancellationt –