WorkflowInstance.Abort 메서드

정의

워크플로 인스턴스를 중단합니다.

public:
 void Abort();
public void Abort ();
member this.Abort : unit -> unit
Public Sub Abort ()

예외

워크플로 런타임 엔진이 실행되고 있지 않은 경우

예제

다음 예제에서는 Workflow1 형식의 워크플로 인스턴스에서 Abort를 호출하는 방법을 보여 줍니다.

//Create a workflow runtime
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
//Create a workflow instance
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
//Start the instance
instance.Start();
//Abort the instance
instance.Abort();
'Create a workflow runtime
Dim workflowRuntime As New WorkflowRuntime()
'Create a workflow instance
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
'Start the instance
workflowInstance.Start()
'Abort the instance
workflowInstance.Abort()

설명

워크플로 인스턴스는 비동기 방식으로 중단됩니다. 즉, 워크플로 인스턴스가 중단된 후 메서드가 반환됩니다. 워크플로 런타임 엔진은 메모리의 워크플로 인스턴스를 무효화하고 WorkBatch를 지웁니다. 워크플로 인스턴스에서 지속성 서비스를 사용한 경우 마지막 유지 지점 이후 수행된 모든 작업이 삭제됩니다. 워크플로 런타임 엔진은 워크플로 인스턴스를 중단한 후 WorkflowAborted 이벤트를 발생시킵니다. GetWorkflow를 호출하여 워크플로 인스턴스를 다시 로드하고 마지막 유지 지점에서 시작할 수 있습니다.

Abort가 단순히 메모리 내 워크플로 인스턴스를 지우는 반면 Terminate는 메모리 내 워크플로 인스턴스를 지우고 인스턴스가 메모리에서 지워졌음을 지속성 서비스에 알린다는 점에서 TerminateAbort와 다릅니다. SqlWorkflowPersistenceService의 경우 이는 해당 워크플로 인스턴스의 모든 상태 정보가 종료 시 데이터베이스에서 삭제됨을 의미합니다. 이전에 저장된 유지 지점에서 워크플로 인스턴스를 다시 로드할 수 없습니다.

적용 대상