WorkflowInstance.Unload 메서드

정의

메모리의 워크플로 인스턴스를 지속성 저장소로 언로드합니다. 이 호출은 현재 예약된 작업이 완료된 후 또는 트랜잭션 범위의 끝까지 차단됩니다.

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

예외

워크플로 런타임 엔진에 등록된 지속성 서비스가 없는 경우

예제

다음 예제에서는 Unload 개체에서 WorkflowInstance를 호출하는 방법을 보여 줍니다.

// Create a WorkflowRuntime object
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Create a new instance of the out-of-box SqlWorkflowPersistenceService
SqlWorkflowPersistenceService persistenceService =
   new SqlWorkflowPersistenceService(
   "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;");
// Add the service to the runtime
workflowRuntime.AddService(persistenceService);
// Create a WorkflowInstance object
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
// Start the workflow instance
workflowInstance.Start();
//Unload the instance
workflowInstance.Unload();
' Create a WorkflowRuntime object
Dim workflowRuntime As New WorkflowRuntime()
' Create a new instance of the out-of-box SqlWorkflowPersistenceService
Dim persistenceService As _
   New SqlWorkflowPersistenceService( _
   "Initial Catalog=SqlPersistenceServiceData Source=localhostIntegrated Security=SSPI")
' Add the service to the runtime
workflowRuntime.AddService(persistenceService)
' Create a WorkflowInstance object
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
' Start the workflow instance
workflowInstance.Start()
'Unload the instance
workflowInstance.Unload()

설명

Unload는 동기적입니다. 즉, 수행하는 모든 작업을 완료한 후 반환됩니다. 워크플로 인스턴스가 유휴 상태가 아니면 인스턴스를 중단할 수 있을 때까지 런타임이 대기합니다. 현재 예약된 작업이 완료된 후에만 인스턴스를 중단할 수 있습니다. 이는 일반적으로 현재 실행 중인 활동이 해당 Execute 메서드에서 반환될 때입니다. 그러나 인스턴스가 TransactionScopeActivity를 실행 중이면 트랜잭션 범위가 실행을 완료해야만 인스턴스를 중단할 수 있습니다. 그런 다음 Unload는 지속성 서비스를 사용하여 메모리에서 워크플로 인스턴스를 제거하고 데이터 저장소에서 지속합니다. WorkflowRuntime에 등록된 지속성 서비스가 없으면 UnloadInvalidOperationException을 throw합니다. 워크플로 인스턴스가 성공적으로 지속되면 런타임에서 WorkflowUnloaded 이벤트를 발생시킵니다.

호스트는 Unload를 사용하여 유휴 워크플로에서 시스템 리소스를 회수할 수 있습니다.

적용 대상