はじめに 重たい処理をTaskにしたり、Parallel.For, Parallel.ForEachしたり良くするのですが、細かい挙動が期待通りにならなかったりします。そのた度に実験コードを書いたりしていたのですが、結局実験コードを書くのに時間がかかってしまって本末転倒になりがちです。 そこで、自身用に並列処理の挙動をメモします。新しい例を作る度に追記していきます。 サンプルプログラム 以下のようなお試しプログラムをWinFormで作成しました。昔のデフラグをイメージしました。 ・num は処理するタスク数。小さな■の数です。一つのタスクは初期状態を緑として、灰→青→黄→緑 の順に遷移します。 ・error% は指定した確率でエラー判定を起こします。エラーの時、黄→赤と遷移します。本記事ではただ色が違うだけでそれ以外の意味を持ちません。 ・taskTime 一つの状態遷移にかかる時間です。