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

适用于