다음을 통해 공유


WorkflowApplication.Persist 메서드

정의

워크플로 인스턴스를 인스턴스 저장소에 지속합니다.

오버로드

Persist()

워크플로 인스턴스를 인스턴스 저장소에 지속합니다.

Persist(TimeSpan)

지정한 시간 제한 간격을 사용하여 워크플로 인스턴스를 인스턴스 저장소에 지속합니다.

설명

워크플로 instance 이전에 지속성에서 로드된 경우 워크플로를 로드하는 데 사용된 것과 동일한 InstanceStore 가 지속성에 사용됩니다. 워크플로가 만들어지고 아직 유지되지 않은 경우 이 메서드를 InstanceStore 호출하기 전에 를 구성해야 합니다. 그렇지 않으면 InvalidOperationException 이 메서드를 호출할 때 이 throw됩니다.

Persist()

워크플로 인스턴스를 인스턴스 저장소에 지속합니다.

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

예제

다음 예제에서는 를 호출 Persist 하여 워크플로가 시작되기 전에 워크플로 instance 유지합니다.

WorkflowApplication application = new WorkflowApplication(activity);

application.InstanceStore = instanceStore;

//returning IdleAction.Unload instructs the WorkflowApplication to persists application state and remove it from memory
application.PersistableIdle = (e) =>
{
    return PersistableIdleAction.Unload;
};

application.Unloaded = (e) =>
{
    instanceUnloaded.Set();
};

//This call is not required
//Calling persist here captures the application durably before it has been started
application.Persist();
id = application.Id;
application.Run();

instanceUnloaded.WaitOne();

설명

지속 작업이 30초 이내에 완료되지 않으면 이 TimeoutException throw됩니다.

워크플로 instance 이전에 지속성에서 로드된 경우 워크플로를 로드하는 데 사용된 것과 동일한 InstanceStore 가 지속성에 사용됩니다. 워크플로가 만들어지고 아직 유지되지 않은 경우 이 메서드를 InstanceStore 호출하기 전에 를 구성해야 합니다. 그렇지 않으면 InvalidOperationException 이 메서드를 호출할 때 이 throw됩니다.

적용 대상

Persist(TimeSpan)

지정한 시간 제한 간격을 사용하여 워크플로 인스턴스를 인스턴스 저장소에 지속합니다.

public:
 void Persist(TimeSpan timeout);
public void Persist (TimeSpan timeout);
member this.Persist : TimeSpan -> unit
Public Sub Persist (timeout As TimeSpan)

매개 변수

timeout
TimeSpan

작업이 취소되고 TimeoutException이 throw되기 전에 지속 작업을 완료해야 하는 간격입니다.

예제

다음 예제에서는 를 호출 Persist 하여 워크플로가 시작되기 전에 워크플로 instance 유지합니다.

WorkflowApplication application = new WorkflowApplication(activity);

application.InstanceStore = instanceStore;

//returning IdleAction.Unload instructs the WorkflowApplication to persists application state and remove it from memory
application.PersistableIdle = (e) =>
{
    return PersistableIdleAction.Unload;
};

application.Unloaded = (e) =>
{
    instanceUnloaded.Set();
};

//This call is not required
//Calling persist here captures the application durably before it has been started
application.Persist();
id = application.Id;
application.Run();

instanceUnloaded.WaitOne();

설명

워크플로 instance 이전에 지속성에서 로드된 경우 워크플로를 로드하는 데 사용된 것과 동일한 InstanceStore 가 지속성에 사용됩니다. 워크플로가 만들어지고 아직 유지되지 않은 경우 이 메서드를 InstanceStore 호출하기 전에 를 구성해야 합니다. 그렇지 않으면 InvalidOperationException 이 메서드를 호출할 때 이 throw됩니다.

적용 대상