ワークフローは、実際のプロセスを記述するモデルとして格納される アクティビティ と呼ばれる要素単位のセットです。 ワークフローは、実行順序と、実行時間の短い作業または実行時間の長い作業の一部間の依存関係を記述する方法を提供します。 この作業は最初から最後までモデルを通過し、アクティビティはユーザーまたはシステム関数によって実行される可能性があります。
ワークフロー ランタイム エンジン
実行中のすべてのワークフロー インスタンスは、ホスト プロセスが次のいずれかを通じて対話するインプロセス ランタイム エンジンによって作成および管理されます。
メソッドのようにワークフローを呼び出す WorkflowInvoker。
1 つのワークフロー インスタンスの実行を明示的に制御するための WorkflowApplication 。
マルチインスタンス シナリオでのメッセージ ベースの対話の WorkflowServiceHost 。
これらの各クラスは、アクティビティの実行を担当する ActivityInstance として表されるコア アクティビティ ランタイムをラップします。 アプリケーション ドメイン内には、複数の ActivityInstance オブジェクトが同時に実行されている場合があります。
上記の 3 つのホスト相互作用オブジェクトはそれぞれ、ワークフロー プログラムと呼ばれるアクティビティのツリーから作成されます。 これらの型または ActivityInstanceをラップするカスタム ホストを使用すると、コンソール アプリケーション、フォーム ベースのアプリケーション、Windows サービス、ASP.NET Web サイト、Windows Communication Foundation (WCF) サービスなど、任意の Windows プロセス内でワークフローを実行できます。
ホスト プロセス
ホスト プロセスのワークフロー コンポーネント
ワークフロー コンポーネント間の相互作用
次の図は、ワークフロー コンポーネントが相互に対話する方法を示しています。
上の図では、WorkflowInvoker クラスのInvoke メソッドを使用して、複数のワークフロー インスタンスを呼び出しています。 WorkflowInvoker は、ホストからの管理を必要としない軽量ワークフローに使用されます。ホストからの管理を必要とするワークフロー ( Bookmark 再開など) は、代わりに Run を使用して実行する必要があります。 あるワークフロー インスタンスが完了するのを待ってから、別のワークフロー インスタンスを呼び出す必要はありません。ランタイム エンジンは、複数のワークフロー インスタンスの同時実行をサポートします。 呼び出されるワークフローは次のとおりです。
WriteLine子アクティビティを含むSequence アクティビティ。 親アクティビティの Variable は、子アクティビティの InArgument にバインドされます。 変数、引数、およびバインドの詳細については、「 変数と引数」を参照してください。
ReadLine
と呼ばれるカスタム アクティビティ。ReadLine
アクティビティのOutArgumentが呼び出し元の Invoke メソッドに返されます。CodeActivity抽象クラスから派生するカスタム アクティビティ。 CodeActivityは、Execute メソッドのパラメーターとして使用できるCodeActivityContextを使用して、実行時機能 (追跡やプロパティなど) にアクセスできます。 これらのランタイム機能の詳細については、「ワークフローの追跡とトレースとワークフロー実行のプロパティ」を参照してください。
こちらも参照ください
.NET