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 为空引用(在 Visual Basic 中为 Nothing)。

- 或 -

服务尚未启动。

注解

在调用 Stop 时,工作流运行时引擎在其所有派生自 WorkflowRuntimeService 类的服务上调用 StopRuntime。 在通过调用 Stop 从工作流运行时引擎中移除工作流运行时引擎服务时,工作流运行时引擎也会调用 RemoveServiceStop 的默认实现跟踪服务是否已启动,如果在尚未启动服务的情况下停止该服务,则使用此信息引发适当的异常。

通过重写此方法,可以提供由工作流运行时引擎停止服务时所需的附加功能。 在服务上调用 Stop 时,不能确保将要停止或正在运行哪些服务(如果有)。 在工作流运行时引擎调用其所有工作流运行时引擎服务的 WorkflowRuntime.Stopped 方法后,将引发 Stop 事件。 您的服务可能需要保留部分剩余功能以便支持其他服务,直到由工作流运行时引擎对所有工作流运行时引擎服务调用了各自的 Stop 方法。 如果您的服务必须保留此类功能,则可以重写 OnStopped 方法,在引发 WorkflowRuntime.Stopped 事件时执行完成停止服务所需的任何附加操作。

注意

当工作流运行时引擎正在运行时,如果通过调用 WorkflowRuntimeService 从工作流运行时引擎中移除了 RemoveService,则工作流运行时引擎将在服务上调用 Stop。 不过,在这种情况下,不会为服务调用 OnStopped 方法。 因此,您的服务可能需要在 OnStopped 方法内部执行任何通常在 Stop 中执行的附加关闭功能。 可以测试 IsStarted,确定工作流运行时引擎是否正在运行。

Stop 只应由工作流运行时引擎调用。

适用于