WorkflowRuntimeService.Stop 方法

定義

在衍生類別中覆寫時,停止服務並將 State 變更為 Stopping

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 從工作流程執行階段引擎移除工作流程執行階段引擎服務時,工作流程執行階段引擎也會叫用 RemoveServiceStop 的預設實作會追蹤服務是否已啟動,並使用這項資訊擲回適當的例外狀況 (如果服務在它啟動之前已停止)。

您可以透過覆寫此方法,提供由工作流程執行階段引擎停止您的服務所需的額外方法, 但是,在服務上呼叫 Stop 時,並不保證將會停止哪些服務或哪些服務仍在執行中 (如果有的話)。 工作流程執行階段引擎會在呼叫所有它的工作流程執行階段引擎服務的 WorkflowRuntime.Stopped 方法後,引發 Stop 事件。 您的服務可能需要保留一些剩餘功能以支援其他服務,直到工作流程執行階段引擎叫用所有工作流程執行階段引擎的停止方法為止。 如果您的服務必須保留這類功能,您可以覆寫 OnStopped 方法,以便在 WorkflowRuntime.Stopped 事件引發時,執行完成停止服務所需的任何額外動作。

注意

如果在工作流程執行階段引擎執行時,呼叫 WorkflowRuntimeService 來從工作流程執行階段引擎中移除您的 RemoveService,工作流程執行階段引擎將呼叫您服務上的 Stop。 但在此情況中,將不會對您的服務呼叫 OnStopped 方法。 因此,您的服務可能必須執行它通常由 OnStopped 方法內部的 Stop 中執行的額外關閉功能。 您可以測試 IsStarted 以判斷工作流程執行階段引擎是否正在執行。

Stop 應該只能由工作流程執行階段引擎呼叫。

適用於