WorkflowInstance.Terminate(String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
워크플로 인스턴스를 동기 방식으로 종료합니다.
public:
void Terminate(System::String ^ error);
public void Terminate (string error);
member this.Terminate : string -> unit
Public Sub Terminate (error As String)
매개 변수
- error
- String
워크플로 인스턴스를 종료한 이유에 대한 설명입니다.
예외
워크플로 런타임 엔진이 실행되고 있지 않은 경우
예제
다음 코드 예제에서는 WorkflowInstance 개체에서 Terminate를 호출하는 방법을 보여 줍니다.
// Create a workflow runtime
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Create a workflow instance
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
// Start the workflow
workflowInstance.Start();
// Terminate the workflow, passing in a message
workflowInstance.Terminate("Workflow manually terminated");
' Create a workflow runtime
Dim workflowRuntime As New WorkflowRuntime()
' Create a workflow instance
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
' Start the workflow
workflowInstance.Start()
' Terminate the workflow, passing in a message
workflowInstance.Terminate("Workflow manually terminated")
설명
워크플로 인스턴스는 동기 방식으로 종료됩니다. 호스트가 Terminate를 호출하여 워크플로 인스턴스를 종료합니다. 워크플로 런타임 엔진은 메모리 내 워크플로 인스턴스를 지우고 인스턴스가 메모리에서 지워졌음을 지속성 서비스에 알립니다. SqlWorkflowPersistenceService의 경우 이는 해당 워크플로 인스턴스의 모든 상태 정보가 종료 시 데이터베이스에서 삭제됨을 의미합니다. 이전에 저장된 유지 지점에서 워크플로 인스턴스를 다시 로드할 수 없습니다.
메모리 내 워크플로 인스턴스를 지우고 지속성 서비스에 종료를 알린 후 Terminate
메서드는 WorkflowTerminated 이벤트를 발생시키고 reason
에 포함된 Message의 WorkflowTerminatedException 속성에 WorkflowTerminatedEventArgs을 포함하여 전달합니다.
Terminate가 메모리 내 워크플로 인스턴스를 지우고 지속성 서비스에 종료를 알리는 반면 Terminate
는 단순히 메모리 내 워크플로 인스턴스를 지우며 마지막 유지 지점에서 해당 인스턴스를 다시 시작할 수 있다는 점에서 Abort는 Abort
와 다릅니다.
적용 대상
.NET