WF 内のフロー制御アクティビティ

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

.NET Framework Version 4 には、ワークフロー内の実行フローを制御するアクティビティがいくつか用意されています。このようなアクティビティの一部 (SwitchIf) は、Visual C# など、プログラミング環境のアクティビティと似たフロー制御構造を実装しています。一方、その他は新しいプログラミング構造をモデル化しています (Pick など)。

ParallelParallelForEachParallelForEach などのアクティビティは、同時実行のために複数の子アクティビティをスケジュールできますが、シングル スレッドのみがワークフローに使用されます。これらのアクティビティのそれぞれの子アクティビティは連続して実行され、連続するアクティビティは前のアクティビティが完了するかアイドルになるまで実行されません。その結果、これらのアクティビティは、ブロック処理の可能性がある複数のアクティビティがインターリーブ形式で実行されるアプリケーションの場合に最も有効です。これらのアクティビティに、ブロックしたりアイドルになったりする子アクティビティがない場合、ParallelSequence とまったく同様に実行され、ParallelForEach アクティビティは ForEach とまったく同様に実行されます。ただし、非同期アクティビティ (AsyncCodeActivity またはメッセージング アクティビティから派生したアクティビティなど) を使用する場合、Parallel アクティビティの子アクティビティはその実行用に新しいスレッドを生成します。

フロー制御アクティビティ

アクティビティ 説明

DoWhile

含まれるアクティビティを 1 回実行し、条件が true の間はその実行を続行します。

ForEach

コレクション内の要素ごとに、埋め込みステートメントを連続して実行します。ForEach は、キーワード foreach と似ていますが、言語ステートメントではなくアクティビティとして実装されます。

If

条件が true の場合は含まれるアクティビティを実行します。条件が false の場合は Else プロパティに含まれるアクティビティを実行できます。

Parallel

含まれるアクティビティを並列実行します。

ParallelForEach

コレクション内の要素ごとに埋め込みステートメントを並行実行します。

Pick

イベント ベースの制御フロー モデリングを提供します。

Sequence

含まれるアクティビティを連続実行します。

Switch

指定された式の値に基づいて、実行する複数のアクティビティから 1 つを選択します。

While

条件が true である間は、含まれるアクティビティを実行します。