WorkflowRuntimeService.Start メソッド

定義

派生クラスでオーバーライドされると、サービスを開始して、StateStarting に変更します。

protected public:
 virtual void Start();
protected internal virtual void Start ();
abstract member Start : unit -> unit
override this.Start : unit -> unit
Protected Friend Overridable Sub Start ()

例外

Runtime が null 参照 (Visual Basic の場合は Nothing) です。

- または -

サービスが既に開始されています。

WorkflowRuntimeService から派生したオブジェクト (TerminationTrackingService) に対する Start メソッドを呼び出す方法を次の例に示します。 この例は、終了追跡サービスの SDK サンプルです。 詳細については、「 終了追跡サービスのサンプル」を参照してください。

protected override void Start()
{
    base.Start();
    //
    // This will throw if we are invalid to inform the host immediately
    ValidateEventLogSource(source);
}
Protected Overrides Sub Start()
    MyBase.Start()
    '
    ' This will throw if we are invalid to inform the host immediately
    ValidateEventLogSource(source)
End Sub

注釈

Start が呼び出されると、ワークフロー ランタイム エンジンは、WorkflowRuntimeService クラスから派生したそのすべてのサービスについて StartRuntime を呼び出します。

ワークフロー ランタイム エンジンを開始した後、Start を呼び出してワークフロー ランタイム エンジンにワークフロー ランタイム エンジン サービスを追加したときも、AddService がワークフロー ランタイム エンジンによって呼び出されます。 Start の既定の実装は、サービスが開始されたかどうかを追跡し、この情報を使用することによって、既に実行されているサービスが開始された場合は適切な例外をスローします。

このメソッドをオーバーライドすることにより、サービスをワークフロー ランタイム エンジンで開始するために必要な追加機能を持たせることができます。 ワークフロー ランタイム エンジンがサービスに対する Start を呼び出したときに、存在するどのサービスが実行されているかについての保証はありません。 したがって、Start メソッドでは、他のサービスが提供する機能に依存しない初期化のみを実行する必要があります。 これには、スケジューラ サービスなどのコア サービスが提供する機能が含まれます。 ワークフロー ランタイム エンジンは、そのすべてのサービスの WorkflowRuntime.Started メソッドを呼び出した後で Start イベントを発生させます。 ワークフロー ランタイム エンジンのすべてのサービスを開始した後で、サービスをさらに初期化する必要がある場合は、OnStarted イベントが発生した時点でその初期化を実行するように Start メソッドをオーバーライドできます。

注意

ワークフロー ランタイム エンジンを起動した後、AddService を呼び出してサービスをワークフロー ランタイム エンジンに追加した場合、ワークフロー ランタイム エンジンはそのサービスに対して Start を呼び出します。 ただし、このような場合は、Started イベントが既に発生しているため、サービスは、通常であれば OnStarted で実行される初期化を、Start メソッド内から実行することが必要な場合があります。 IsStarted をテストすると、ワークフロー ランタイム エンジンが起動されているかどうかを確認できます。

Start は、ワークフロー ランタイム エンジンでのみ呼び出す必要があります。

適用対象