我的Windows Workflow Foundation 之旅---(3)工作流宿主
2008-11-04 18:27
369 查看
[上一节]
工作流需要一个宿主应用程序才能运行。宿主负责启动并维持工作流,工作流本身不需要了解运行时它所处的宿主是怎样的,然而这个宿主对工作流的生命周期来说却是十分重要的。
任何类型的.NET应用程序都可以作为工作流的宿主,一个工作流实例可以由Windows窗体应用程序的一个按钮开始,然后和一个Asp.net Web程序交互。在Windows窗体和Asp.net Web程序中使用相同的工作流实例,这些都被成为宿主。接下来我们了解宿主的几个概念:
1.工作流运行时
工作流运行时是宿主应用程序和工作流实例之间的通道,对工作流生命周期管理起到了重要作用。
WorkflowRuntime类表示工作流运行时,为管理运行时环境提供了许多功能。有了这个类就可以完全控制工作流实例的执行和运行时本身。
创建WorkflowRuntime实例,如下代码所示
Code
1 //创建工作流实例
2
3 WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(Demo1.Workflow1),parms);
4
5 //启动工作流
6
7 instance.Start();
8
如果WorkflowRuntime类的StartRuntime方法没有被调用,它会在一个工作流实例启动的时候被调用。
2.WorkflowInstance类
WorkflowInstance类以实例的形式表示所有的工作流。可以将它看作一个工作流实例的外包装。
得到一个新的工作流实例的方法是调用WorkflowRuntime的CreateWorkflow方法,这点在上文已经提到过,调用CreateWorkflow不会启动这个工作流,只有当WorkflowInstance的Start方法被调用以后,才会启动工作流。
下面列出了WorkflowInstance类的方法:
3.WorkflowEnvironment 类
WorkflowEnvironment能够访问正在当前线程上执行的工作流实例的事务上下文。这个类有两个属性: WorkflowInstanceId和WorkBatch。
WorkflowInstanceId:获取与当前线程关联的工作流实例的GUID。
WorkBatch:获取当前工作批次。(允许工作流具有事务的功能)
[下一节]
工作流需要一个宿主应用程序才能运行。宿主负责启动并维持工作流,工作流本身不需要了解运行时它所处的宿主是怎样的,然而这个宿主对工作流的生命周期来说却是十分重要的。
任何类型的.NET应用程序都可以作为工作流的宿主,一个工作流实例可以由Windows窗体应用程序的一个按钮开始,然后和一个Asp.net Web程序交互。在Windows窗体和Asp.net Web程序中使用相同的工作流实例,这些都被成为宿主。接下来我们了解宿主的几个概念:
1.工作流运行时
工作流运行时是宿主应用程序和工作流实例之间的通道,对工作流生命周期管理起到了重要作用。
WorkflowRuntime类表示工作流运行时,为管理运行时环境提供了许多功能。有了这个类就可以完全控制工作流实例的执行和运行时本身。
创建WorkflowRuntime实例,如下代码所示
Code
1 //创建工作流实例
2
3 WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(Demo1.Workflow1),parms);
4
5 //启动工作流
6
7 instance.Start();
8
如果WorkflowRuntime类的StartRuntime方法没有被调用,它会在一个工作流实例启动的时候被调用。
2.WorkflowInstance类
WorkflowInstance类以实例的形式表示所有的工作流。可以将它看作一个工作流实例的外包装。
得到一个新的工作流实例的方法是调用WorkflowRuntime的CreateWorkflow方法,这点在上文已经提到过,调用CreateWorkflow不会启动这个工作流,只有当WorkflowInstance的Start方法被调用以后,才会启动工作流。
下面列出了WorkflowInstance类的方法:
名称 | 说明 | |
Abort | 中止工作流实例。 | |
ApplyWorkflowChanges | 将更改应用到 WorkflowChanges 对象所指定的工作流实例。 | |
EnqueueItem | 将消息同步发送到指定工作流队列。 | |
EnqueueItemOnIdle | 当工作流处于空闲状态时,将消息发送到指定的工作流队列。在确认工作流计划程序处于空闲状态(即没有执行任何有效操作)之后,EnqueueItemOnIdle将一直等待,直至工作流达到空闲点并编排队列。 | |
Equals | 返回一个值,该值指示指定对象是否等于 WorkflowInstance。 (重写 Object..::.Equals(Object)。) | |
Finalize | 允许 Object 在"垃圾回收"回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | |
GetHashCode | 返回此工作流实例的哈希代码。 (重写 Object..::.GetHashCode()()()。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
GetWorkflowDefinition | 检索此工作流实例的根活动。 | |
GetWorkflowNextTimerExpiration | 返回下一个时间点,已计划在此时间点向此 WorkflowInstance传递计时器消息。 | |
GetWorkflowQueueData | 获取 WorkflowQueueInfo对象的集合,该集合包含与此工作流实例关联的工作流队列的挂起项和订阅活动。 | |
Load | 加载先前卸载的工作流实例。 | |
MemberwiseClone | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
ReloadTrackingProfiles | 重新加载此工作流实例的跟踪配置文件。 | |
Resume | 继续执行先前挂起的工作流实例。 | |
Start | 开始执行工作流实例。 | |
Suspend | 挂起工作流实例。 | |
Terminate | 以同步方式终止工作流实例。 | |
ToString | 返回表示当前 Object 的 String。 (继承自 Object。) | |
TryUnload | 当实例处于挂起或空闲状态时,将工作流实例从内存卸载到持久性存储区。 | |
Unload | 将工作流实例从内存卸载到持久性存储区。此调用将进行阻止,直至当前计划的工作完成或事务范围结束。 |
WorkflowEnvironment能够访问正在当前线程上执行的工作流实例的事务上下文。这个类有两个属性: WorkflowInstanceId和WorkBatch。
WorkflowInstanceId:获取与当前线程关联的工作流实例的GUID。
WorkBatch:获取当前工作批次。(允许工作流具有事务的功能)
[下一节]
相关文章推荐
- Programming Windows Workflow Foundation第六章-工作流宿主翻译完成
- Windows Workflow Foundation 工作流宿主
- WF (Windows Workflow Foundation) 工作流学习(一)一个Asp.Net 状态机验证程序
- WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net 与 顺序工作流 结合的例子
- Windows Workflow Foundation (wwf) 在宿主中使用参数与实例通信 --学习笔记(二)
- Windows Workflow Foundation之旅(七)——顺序工作流、状态机工作流
- Windows Workflow Foundation之旅(七)——顺序工作流、状态机工作流
- Windows Workflow Foundation(五)——框架组成、工作流创作模式
- [转贴]Windows workflow foundation之旅(三)——指南2(创建状态机工作流)(上)
- 跟我一起学Windows Workflow Foundation(3)-----使用If/Else活动,定制活动处理工作流,使用事件传递数据
- Windows Workflow Foundation之旅(七)——顺序工作流、状态机工作流
- Windows Workflow Foundation(五)——框架组成、工作流创作模式 (转载)
- WF (Windows Workflow Foundation) 工作流学习(一)一个Asp.Net 状态机验证程序
- WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net 与 顺序工作流 结合的例子
- Windows Workflow Foundation之旅(八)——使用活动控制流程、在工作流中使用条件
- [转贴]Windows workflow foundation之旅(四)——指南2(创建状态机工作流)(下)
- 和我一起学Windows Workflow Foundation(微软工作流)
- Windows Workflow Foundation之旅(六)——框架组成、工作流创作模式
- WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net 与 顺序工作流 结合的例子
- WinFX 工作流:简化Windows Workflow Foundation 的声明性模型开发