WorkflowApplication.Persist 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将工作流实例保留到实例存储区。
重载
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。