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