WorkflowRuntimeService.Stop メソッド

定義

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

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

例外

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

- または -

サービスがまだ開始されていません。

注釈

Stop が呼び出されると、ワークフロー ランタイム エンジンは、WorkflowRuntimeService クラスから派生したそのすべてのサービスについて StopRuntime を呼び出します。 Stop の呼び出しによってワークフロー ランタイム エンジンからワークフロー ランタイム エンジンのサービスが削除されるときも、RemoveService がワークフロー ランタイム エンジンによって呼び出されます。 Stop の既定の実装は、サービスが開始されたかどうかを追跡し、この情報を使用することによって、開始前のサービスが停止させられる場合は適切な例外をスローします。

このメソッドをオーバーライドすることにより、サービスをワークフロー ランタイム エンジンで停止させるために必要な追加機能を持たせることができます。 サービスに対する Stop が呼び出されたときに、存在するどのサービスが停止しているかまたは実行されているかについての保証はありません。 ワークフロー ランタイム エンジンは、そのすべてのサービスの WorkflowRuntime.Stopped メソッドを呼び出した後で Stop イベントを発生させます。 サービスは、ワークフロー ランタイム エンジンがワークフロー ランタイム エンジンのすべてのサービスについて停止メソッドを呼び出し終えるまで、他のサービスをサポートするための残留機能を保持しておくことが必要な場合があります。 サービスがこうした機能を保持する必要がある場合は、OnStopped イベントが発生したときにサービスの停止を完了するために必要な追加アクションを実行するように WorkflowRuntime.Stopped メソッドをオーバーライドできます。

注意

ワークフロー ランタイム エンジンの実行中に WorkflowRuntimeService を呼び出して RemoveService をワークフロー ランタイム エンジンから削除すると、ワークフロー ランタイム エンジンはそのサービスに対して Stop を呼び出します。 ただし、このような場合は、そのサービスに対して OnStopped メソッドが呼び出されません。 したがって、通常サービスは OnStopped でシャットダウン機能を実行しますが、ここでは Stop メソッド内からシャットダウンする必要があります。 IsStarted をテストすると、ワークフロー ランタイム エンジンが実行されているかどうかを確認できます。

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

適用対象