다음을 통해 공유


WorkflowInstance.TryUnload 메서드

정의

인스턴스가 일시 중단되거나 유휴 상태이면 메모리의 워크플로 인스턴스를 지속성 저장소로 언로드합니다.

public:
 bool TryUnload();
public bool TryUnload ();
member this.TryUnload : unit -> bool
Public Function TryUnload () As Boolean

반환

워크플로 인스턴스가 언로드되었으면 true이고, 그렇지 않으면 false입니다.

예외

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

예제

다음 예제에서는 WorkflowIdled 이벤트가 발생할 때 TryUnload 메서드를 사용하여 워크플로를 언로드하는 방법을 보여 줍니다. 이 예제는 Program.cs 파일에 있는 Using Persistence Services SDK 샘플의 일부입니다. 자세한 내용은 Persistence Services 샘플을 사용 하 여입니다.

//Called when the workflow is idle - in this sample this occurs when the workflow is waiting on the
// delay1 activity to expire
static void OnWorkflowIdled(object sender, WorkflowEventArgs e)
{
    Console.WriteLine("Workflow is idle.");
    e.WorkflowInstance.TryUnload();
}
'Called when the workflow is idle - in me sample me occurs when the workflow is waiting on the
' delay1 activity to expire
Shared Sub OnWorkflowIdled(ByVal sender As Object, ByVal e As WorkflowEventArgs)
    Console.WriteLine("Workflow is idle.")
    e.WorkflowInstance.TryUnload()
End Sub

설명

워크플로 인스턴스가 유휴 상태이거나 일시 중단된 경우 TryUnload는 지속성 서비스를 사용하여 메모리에서 워크플로 인스턴스를 제거하고 데이터 저장소에서 지속합니다. WorkflowRuntime에 등록된 지속성 서비스가 없으면 TryUnloadInvalidOperationException을 throw합니다. 워크플로 인스턴스가 성공적으로 지속되면 런타임에서 WorkflowUnloaded 이벤트를 발생시키고 true를 반환합니다. 워크플로 인스턴스가 이미 언로드, 종료, 일시 중단 또는 완료된 경우 Unload에서 false를 반환합니다.

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

적용 대상