WorkflowApplication.Persist メソッド

定義

ワークフロー インスタンスをインスタンス ストアに永続化します。

オーバーロード

Persist()

ワークフロー インスタンスをインスタンス ストアに永続化します。

Persist(TimeSpan)

指定されたタイムアウト期間を使用して、ワークフロー インスタンスをインスタンス ストアに永続化します。

注釈

ワークフロー インスタンスが永続化ストアから読み込まれたものである場合は、ワークフローの読み込みに使用された同じ InstanceStore が、永続化に使用されます。 ワークフローが作成されたものであり、まだ永続化されていない場合は、このメソッドを呼び出す前に InstanceStore を構成する必要があります。この操作を行わないと、このメソッドを呼び出したときに InvalidOperationException がスローされます。

Persist()

ワークフロー インスタンスをインスタンス ストアに永続化します。

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

次の例では、ワークフローの開始前に Persist を呼び出して、ワークフロー インスタンスを永続化します。

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 がスローされます。

ワークフロー インスタンスが永続化ストアから読み込まれたものである場合は、ワークフローの読み込みに使用された同じ InstanceStore が、永続化に使用されます。 ワークフローが作成されたものであり、まだ永続化されていない場合は、このメソッドを呼び出す前に InstanceStore を構成する必要があります。この操作を行わないと、このメソッドを呼び出したときに InvalidOperationException がスローされます。

適用対象

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 がスローされるまでの時間の長さ。永続化操作は、この時間内に完了する必要があります。

次の例では、ワークフローの開始前に Persist を呼び出して、ワークフロー インスタンスを永続化します。

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();

注釈

ワークフロー インスタンスが永続化ストアから読み込まれたものである場合は、ワークフローの読み込みに使用された同じ InstanceStore が、永続化に使用されます。 ワークフローが作成されたものであり、まだ永続化されていない場合は、このメソッドを呼び出す前に InstanceStore を構成する必要があります。この操作を行わないと、このメソッドを呼び出したときに InvalidOperationException がスローされます。

適用対象