WorkflowRuntime
来源:互联网 发布:易驾星模拟器软件 编辑:程序博客网 时间:2024/04/28 18:41
介绍
System.Workflow.Runtime.WorkflowRuntime
文件: system.workflow.runtime.dll
在工作流的运行环境(宿主)中,为工作流提供运行的引擎
1.WorkflowRuntime在宿主中以自已独立的线程运行例
2.WorkflowRuntime可以加载多个工作流实例,每个工作流实例在WorkflowRuntime有独立的线程
3.同一宿主可可以实例化多个引擎,他们可以同时工作 配置并启动引擎 Dim 引擎 As New WorkflowRuntime() '定义引擎实例 引擎.AddService(加载服务)'向引擎加载服务 AddHandler 引擎.事件, AddressOf 事件回调程序 '为引擎绑定事件 引擎.StartRuntime() '启动引擎 在引擎中创建 并运行实例 Dim 工作流模板类As Type '定义一个Type型对象 工作流模板类= GetType(Workflow1) '得要要运行的工作流的类型名 Dim 实例 As WorkflowInstance '定义一个要由引擎运行的工作流实例 '用引擎.CreateWorkflow方法返回实例,此时该实例已在引擎内创建,但还没启动 实例= 引擎.CreateWorkflow(工作流模板类) 实例.Start() '运行引擎中的实例 停止引擎 '停止引擎 引擎.StopRuntime() 加载 服务 得到 服务 AddService 添加一个服务到工作流引擎 引擎.AddService (object) RemoveService 从工作流引擎移除一个服务 引擎.RemoveService(object) GetService 从加载到引擎中的指定服务 Function GetService (serviceType As Type) As Object Function GetService(Of T)() As T GetAllServices 得到所有加载到引擎中的服务 Function GetAllServices(Of T) As ReadOnlyCollection(Of T) Function GetAllServices (serviceType As Type) As ReadOnlyCollection(Of Object) 建立 实例 得到 实例 CreateWorkflow 在引擎中建立一个实例,并将该实例返回 使用工作流类开为参数 Function CreateWorkflow ( workflowType As Type ) As WorkflowInstance Function CreateWorkflow (workflowType As Type,参数 As Dictionary(Of String, Object)) As WorkflowInstance 使用一个XmlReader为参数 Function CreateWorkflow(ByVal workflowDefinitionReader As XmlReader) As WorkflowInstance Function CreateWorkflow(ByVal workflowDefinitionReader As XmlReader, ByVal rulesReader As XmlReader, ByVal 参数As Dictionary(Of String, Object)) As WorkflowInstance GetLoadedWorkflows 得到内存中所有工作流的集合 Function GetLoadedWorkflows As ReadOnlyCollection(Of WorkflowInstance) GetWorkflow 使用 Guid参数,从引擎中得到指定ID的工作流实例 Function GetWorkflow(ByVal instanceId As Guid) As WorkflowInstance 引擎 控制 StartRuntime 启用引擎 引擎.StartRuntime() StopRuntime 停止引擎,停止引擎后,引擎并没有释放,引擎中的实例也存中,只是所有的执行都被系统级挂起,当重新启动引擎时,所有的实例还可粥运行 引擎.StopRuntime() 资源释放 Dispose 释放工作流引擎资源 引擎.Dispose() ServicesException _NotHandled Occurs when a service that is derived from the WorkflowRuntimeService class calls RaiseServicesExceptionNotHandledEvent(与加载服务有关) Sub OnServicesExceptionNotHandled(ByVal sender As Object, ByVal e As ServicesExceptionNotHandledEventArgs) 'ServicesExceptionNotHandledEventArgs ' e.Exception异常信息 ' e.WorkflowInstanceId 工作流实例的GUID Started 引擎启动后 Sub OnStarted(ByVal sender As Object, ByVal e As WorkflowRuntimeEventArgs) 'WorkflowRuntimeEventArgs 'e.IsStarted 是否启动 Stopped 引擎停止后 Sub OnStopped(ByVal sender As Object, ByVal e As WorkflowRuntimeEventArgs) 'WorkflowRuntimeEventArgs 'e.IsStarted 是否启动 WorkflowAborted 引擎中的某个实例:被中断执行后 Sub OnWorkflowAborted(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowCompleted 引擎中的某个实例:完成后. Sub OnWorkflowCompleted(ByVal sender As Object, ByVal e As WorkflowCompletedEventArgs) 'WorkflowCompletedEventArgs ' e.OutputParameters用参数方式与实例的属性进行通信 ' e.WorkflowInstance 工作流实例 ' e.WorkflowInstance 引发该事件的实例 WorkflowCreated 引擎中的某个实例: 被创建后 Sub OnWorkflowCreated(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowIdled 引擎中的某个实例: 进入空闭状态, 如Delay控件,CallExternalMethod控件, 会触发该事件 Sub OnWorkflowIdled(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowLoaded 引擎中的某个实例: 加载到内存时 Sub OnWorkflowLoaded(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowPersisted 引擎中的某个实例: 进入持久化状态后, 注,如果没有加载持久化服务,而调用持久化方法,该事件仍会触发,但实例并没有被持久化 Sub OnWorkflowPersisted(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowResumed 引擎中的某个实例:从挂起状态恢复后 Sub OnWorkflowResumed(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowStarted 引擎中的某个实例:被启动后 Sub OnWorkflowStarted(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 WorkflowSuspended 引擎中的某个实例:被暂停后,如Suspend控件会触发该事件 Sub OnWorkflowSuspended(ByVal sender As Object, ByVal e As WorkflowSuspendedEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例 'e.Error 暂停信息 WorkflowTerminated 引擎中的某个实例:终止后,如工作流内部的异常会引起终止 Sub OnWorkflowTerminated(ByVal sender As Object, ByVal e As WorkflowTerminatedEventArgs) 'WorkflowTerminatedEventArgs ' e.Exception 异常 ' e.WorkflowInstance 工作流实例 WorkflowUnloaded 引擎中的某个实例:从内存中移出后 Sub OnWorkflowUnloaded(ByVal sender As Object, ByVal e As WorkflowEventArgs) 'WorkflowEventArgs 'e.WorkflowInstance 工作流实例基本使用
方法
如何加载服务见WWF_持久化事件
有些事件将在具体实用中详细说明
ByVal sender As Object返回引发该事件的工作流引擎,当一个宿主实例化了多个引擎,而这些引擎又绑定到同一组事件上时,可以使用sender参数得到触发该事件的引擎
- WorkflowRuntime
- WorkflowRuntime与PersistenceService
- WorkflowRuntime与服务
- WorkflowRuntime介绍和使用
- WorkflowRuntime解析(1)
- Form初始化后,就要初始化用来存储Workflow状态的WorkFlowRunTime
- Xenu Link Sleuth:一种很小很强大的检查网站死链接的工具
- 完全找出web空间中的asp后门
- Symbian 图片透明效果
- 《WF编程》系列之4 - 漫游工作流:Widows Workflow Runtime及其服务
- 惠普前CEO继续为自己辩护:费舍尔有财务困难
- WorkflowRuntime
- 社交网站界面设计
- Pthread使用手册
- 手把手教你如何安装网络打印机
- oracle(10G)的正则表达式(regular expression)简单介绍
- JBOSS学习EJB笔记四
- 什么是CMS系统
- ABC网络地址范围
- 基于OLAP的时间维度设计