2010年1月12日火曜日

Windows Workflow(WF)のParallel Activityはよく言う非同期とちょっと違う

ちょっとイメージと違ったのでメモ。
Parallelと言われるとマルチスレッドよろしく、複数処理の並行動作をイメージしているんだけど、WFのParallelはそういう非同期ではなかったのね。



検証するために上記のようなワークフローで試してみた。whileActivityでは単純に10回ループさせるようにし、各codeActivityではConsole.WriteLineしてみる。この場合、DelayActivityがなければ、

1→2→3→4 とか 2→1→4→3とか

こういった形で「シーケンシャル」に処理が実行された。図のように間にDelayを挿入して適当な時間待たせるようにすると、

1→2→4→3 とか 2→1→4→3とか

CodeActivity3の前に別Activityの処理が行われるようになった。こんな感じで
処理の順番が保障されない
という意味合いでのパラレルだった。

うーん、さすがにマルチスレッド動作を願ったのは高望だったなw

0 件のコメント:

コメントを投稿