次の方法で共有


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

適用対象