语言

WorkflowInstance 类

定义

WorkflowInstance 是用于执行工作流程序的轻型每个实例运行时。 可以构造它以创建新的工作流实例或从现有实例状态。 公开的 WorkflowInstance.WorkflowInstanceControl API 是可从中实现更高级别的操作的最小运行时控件集。 此 API 集表示运行时的全部功能。 WorkflowInstance 是一个抽象类,依赖于主机对其抽象方法的实现,以提供主机功能,例如同步、持久性、跟踪和扩展。

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
继承
WorkflowInstance
派生

注解

WorkflowInstance 是单线程的,并假定主机同步对它的所有访问。 尝试同时调用多个 API 将导致 InvalidOperationException 引发。

在内部,a 有两种 WorkflowInstance 状态:“正在运行”和“已暂停”。 导致运行时从暂停转换到运行的唯一方法是调用 Run。 只有在运行时暂停时,才能执行所有操作(暂停除外)。 在以下情况下,运行时将自发暂停:

  • 运行时发生错误。 主机将通过(不会向已暂停的过渡信号)发出信号OnRequestAbort,然后通过通知。OnNotifyPaused

  • 工作流中的异常未捕获并转义根。 主机将通过该方法收到通知 OnNotifyUnhandledException 。

  • 计划程序已用完工作项,现在 Idle已用完。 主机将通过该方法收到通知 OnNotifyPaused 。 请注意,由于实例处于空闲状态或实例已完成,计划程序可能会耗尽工作项。 属性 State 的值 Controller 可用于区分这两个属性。

主机可以通过调用RequestPause属性返回的PauseWhenPersistable实例的或WorkflowInstance.WorkflowInstanceControl方法,请求从“正在运行”更改为“已暂停”。Controller 不应将此请求视为具有特定响应,这意味着主机不应尝试关联 OnNotify* 或 OnRequestAbort 要暂停的特定调用。 为了响应暂停请求,运行时可能会转换为“已暂停”,并在计划程序仍具有挂起的工作项时调用 OnNotifyPaused 。 该 State 属性的值 Controller 可用于确定计划程序是否没有更多工作或被暂停请求中断。

属性RequestPause返回WorkflowInstance.WorkflowInstanceControl的Controller实例的方法是唯一可以在处于“正在运行”状态时WorkflowInstance调用的方法。 所有其他方法都将引发 InvalidOperationException 调用时引发。鉴于如何 WorkflowInstance 从一个状态转换到另一个状态的规则,可以定义运行和暂停的公共概念,如下所示:

  • 正在运行 - 调用与 Run 下一个 WorkflowInstance.OnNotify*之间的状态。

  • 已暂停 - 上一个 WorkflowInstance.OnNotify* 与下一次调用 Run之间的状态。

构造函数

名称 说明
WorkflowInstance(Activity, WorkflowIdentity)

使用指定的工作流定义和定义标识初始化类的新实例 WorkflowInstance 。

WorkflowInstance(Activity)

使用指定的工作流定义初始化类的新实例 WorkflowInstance 。

属性

名称 说明
Controller

获取此WorkflowInstance.WorkflowInstanceControl实例WorkflowInstance。

DefinitionIdentity

获取或设置 . 的定义标识 WorkflowInstance。

HostEnvironment

获取或设置工作流实例的参数和变量的根环境。

Id

获取工作流实例的唯一标识符。

IsReadOnly

获取一个值,该值指示是否已初始化工作流实例。

SupportsInstanceKeys

获取一个值,该值指示主机是否支持与运行时实例的关联 InstanceKeys 。

SynchronizationContext

获取或设置 SynchronizationContext 用于计划工作流实例。

WorkflowDefinition

获取工作流实例的工作流定义。

方法

名称 说明
BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

由工作流运行时调用,开始以异步方式发送挂起的跟踪记录以跟踪参与者。

DisposeExtensions()

对实现Dispose()的所有扩展的调用IDisposable。

EndFlushTrackingRecords(IAsyncResult)

由工作流运行时调用以结束跟踪操作。

Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
FlushTrackingRecords(TimeSpan)

由工作流运行时调用,以发送挂起的跟踪记录来跟踪参与者。

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

检索阻止工作流更新的活动列表。

GetExtension<T>()

返回指定类型的扩展。

GetExtensions<T>()

返回为指定类型找到的所有扩展。

GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type。

(继承自 Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

由主机调用,以使用参数值和执行属性初始化工作流实例。

Initialize(Object, DynamicUpdateMap)

由主机调用,以使用工作流运行时状态和更新映射初始化工作流实例。

Initialize(Object)

由主机调用,以使用工作流运行时状态初始化工作流实例。

MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

由工作流运行时调用以通知主机应与此实例关联的新实例密钥。

OnBeginFlushTrackingRecords(AsyncCallback, Object)

异步调用,要求主机刷新挂起的跟踪记录以跟踪参与者。

OnBeginPersist(AsyncCallback, Object)

异步调用以要求主机保留工作流。

OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

由工作流运行时调用,以通知主机恢复书签操作已开始。

OnDisassociateKeys(ICollection<InstanceKey>)

由工作流运行时调用以通知主机,某些实例密钥集不应再与此实例关联。

OnEndAssociateKeys(IAsyncResult)

由工作流运行时调用,以通知主机关联密钥操作已完成。

OnEndFlushTrackingRecords(IAsyncResult)

工作流运行时调用,以在刷新跟踪记录操作完成时通知主机。

OnEndPersist(IAsyncResult)

由工作流运行时调用,以通知主机持久操作已完成。

OnEndResumeBookmark(IAsyncResult)

由工作流运行时调用,以通知主机恢复书签操作已完成。

OnNotifyPaused()

由工作流运行时调用,以通知主机工作流实例已从运行状态转换到暂停状态。

OnNotifyUnhandledException(Exception, Activity, String)

工作流运行时调用以通知主机工作流实例中发生了未经处理的异常。

OnRequestAbort(Exception)

由工作流运行时调用,以通知主机已为工作流实例请求中止操作。

RegisterExtensionManager(WorkflowInstanceExtensionManager)

由主机调用以注册指定的扩展管理器,验证是否存在所有必需的扩展,并初始化要使用的扩展集合。

ThrowIfReadOnly()

InvalidOperationException如果工作流实例已初始化,则引发该实例,由该实例确定IsReadOnly。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)

适用于