次の方法で共有


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

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

ParallelParallelForEachアクティビティなどのアクティビティでは、複数の子アクティビティが同時に実行されるようにスケジュールされますが、ワークフローには 1 つのスレッドのみが使用されることに注意してください。 これらのアクティビティの各子アクティビティは順番に実行され、後続のアクティビティは前のアクティビティが完了するかアイドル状態になるまで実行されません。 その結果、これらのアクティビティは、ブロックする可能性のある複数のアクティビティをインターリーブ形式で実行する必要があるアプリケーションに最も役立ちます。 これらのアクティビティの子アクティビティがいずれもアイドル状態でない場合、 Parallel アクティビティは Sequence アクティビティと同じように実行され、 ParallelForEach アクティビティは ForEach アクティビティと同じように実行されます。 ただし、非同期アクティビティ ( AsyncCodeActivity から派生したアクティビティなど) やメッセージング アクティビティが使用されている場合は、子アクティビティがメッセージの受信または非同期作業の完了を待機している間に、制御が次の分岐に渡されます。

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

アクティビティ 説明
DoWhile 含まれているアクティビティを 1 回実行し、条件が trueされている間は引き続き実行します。
ForEach<T> コレクション内の各要素に対して、埋め込みステートメントを順番に実行します。 ForEach<T> はキーワード foreachに似ていますが、言語ステートメントではなくアクティビティとして実装されます。
If 条件がtrueされている場合は含まれるアクティビティを実行し、条件がfalseされている場合は、Else プロパティに含まれるアクティビティを実行できます。
Parallel 包含アクティビティを並列で実行します。
ParallelForEach<T> コレクション内の各要素に対して、埋め込みステートメントを並列で実行します。
Pick イベント ベースの制御フロー モデリングを提供します。
PickBranch Pick アクティビティで実行される可能性のあるパスを表します。
Sequence 含まれているアクティビティを順番に実行します。
Switch<T> 特定の式の値に基づいて、実行する複数のアクティビティから 1 つの選択肢を選択します。
While 条件が trueされている間、包含アクティビティを実行します。