다음을 통해 공유


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)인 경우

또는

서비스가 시작되지 않은 경우

설명

StopWorkflowRuntimeService이 호출될 때 StopRuntime 클래스에서 파생된 모든 서비스에서 워크플로 런타임 엔진에 의해 호출됩니다. Stop를 호출하여 워크플로 런타임 엔진에서 워크플로 런타임 엔진 서비스를 제거하면 워크플로 런타임 엔진이 RemoveService도 호출합니다 Stop의 기본 구현은 서비스가 시작되었는지 여부를 추적하며, 서비스가 시작되기 전에 중지된 경우 이 정보를 사용하여 해당 예외를 throw합니다.

이 메서드를 재정의하여 워크플로 런타임 엔진에서 서비스를 중지하도록 하는 데 필요한 추가 기능을 제공할 수 있습니다. 서비스에서 Stop이 호출될 때 어떠한 서비스가(있는 경우) 중지 또는 실행될지는 알 수 없습니다. 워크플로 런타임 엔진은 모든 워크플로 런타임 엔진 서비스의 WorkflowRuntime.Stopped 메서드를 호출한 후 Stop 이벤트를 발생시킵니다. 모든 워크플로 런타임 엔진 서비스에 워크플로 런타임 엔진이 호출한 중지 메서드가 있을 때까지 서비스가 다른 서비스를 지원하기 위한 추가 기능을 유지해야 할 수도 있습니다. 서비스가 이러한 기능을 유지해야 하는 경우 OnStopped 메서드를 재정의하여 WorkflowRuntime.Stopped 이벤트가 발생할 때 서비스 중지를 완료하는 데 필요한 추가 작업을 수행할 수 있습니다.

참고

워크플로 런타임 엔진이 실행되는 동안 WorkflowRuntimeService를 호출하여 RemoveService를 워크플로 런타임 엔진에서 제거하면 워크플로 런타임 엔진이 서비스에서 Stop을 호출합니다. 그러나 이 경우 서비스에 대해 OnStopped 메서드가 호출되지 않습니다. 따라서 주로 OnStopped에서 수행되는 추가 종료 기능을 Stop 메서드 내부에서 수행해야 할 수도 있습니다. IsStarted를 테스트하여 워크플로 런타임 엔진이 실행 중인지 여부를 확인할 수 있습니다.

Stop는 워크플로 런타임 엔진에서만 호출되어야 합니다.

적용 대상