WF 内のフロー制御アクティビティ
このトピックの内容は、Windows Workflow Foundation 4 に該当します。
.NET Framework Version 4 には、ワークフロー内の実行フローを制御するアクティビティがいくつか用意されています。このようなアクティビティの一部 (Switch や If) は、Visual C# など、プログラミング環境のアクティビティと似たフロー制御構造を実装しています。一方、その他は新しいプログラミング構造をモデル化しています (Pick など)。
Parallel、ParallelForEach、ParallelForEach などのアクティビティは、同時実行のために複数の子アクティビティをスケジュールできますが、シングル スレッドのみがワークフローに使用されます。これらのアクティビティのそれぞれの子アクティビティは連続して実行され、連続するアクティビティは前のアクティビティが完了するかアイドルになるまで実行されません。その結果、これらのアクティビティは、ブロック処理の可能性がある複数のアクティビティがインターリーブ形式で実行されるアプリケーションの場合に最も有効です。これらのアクティビティに、ブロックしたりアイドルになったりする子アクティビティがない場合、Parallel は Sequence とまったく同様に実行され、ParallelForEach アクティビティは ForEach とまったく同様に実行されます。ただし、非同期アクティビティ (AsyncCodeActivity またはメッセージング アクティビティから派生したアクティビティなど) を使用する場合、Parallel アクティビティの子アクティビティはその実行用に新しいスレッドを生成します。
フロー制御アクティビティ
アクティビティ | 説明 |
---|---|
含まれるアクティビティを 1 回実行し、条件が true の間はその実行を続行します。 |
|
ForEach |
コレクション内の要素ごとに、埋め込みステートメントを連続して実行します。ForEach は、キーワード foreach と似ていますが、言語ステートメントではなくアクティビティとして実装されます。 |
If |
条件が true の場合は含まれるアクティビティを実行します。条件が false の場合は Else プロパティに含まれるアクティビティを実行できます。 |
Parallel |
含まれるアクティビティを並列実行します。 |
ParallelForEach |
コレクション内の要素ごとに埋め込みステートメントを並行実行します。 |
Pick |
イベント ベースの制御フロー モデリングを提供します。 |
Sequence |
含まれるアクティビティを連続実行します。 |
Switch |
指定された式の値に基づいて、実行する複数のアクティビティから 1 つを選択します。 |
条件が true である間は、含まれるアクティビティを実行します。 |