《WF编程》系列之46 第七章 事件驱动工作流
2010-10-01 08:20:51 来源:WEB开发网图片看不清楚?请点击这里查看原图(大图)。
事件(event),是一些外部的刺激。在上面的截图中,我们只有一种类型的事件——按钮的点击事件。状态机将会对Power On或Power Off状态上的这个事件做出响应。并不是所有的事件必须对相同的事件做出响应。
迁移(transition)将状态机转移到下一个状态。迁移只能发生在对事件的响应上。迁移不必将状态机转移到一个新的状态——迁移可以环回(loop back)到相同的状态。当状态机在Power Off状态中接收到按钮的点击事件时,它会迁移到Power On状态。反之,如果状态机在Power On状态中接收到按钮的点击事件,那么它会转移到Power Off状态。
状态迁移的概念暗示了在迁移之前或之后将会发生一些操作。就是说,状态机并不只是存储状态,它还会在事件到达的时候执行代码。在上面的截图中,状态机在到达一个新的状态时,将会通过打开或关闭电路的方式来控制电流的流向。
Windows工作流中的状态机
在上面截图中的状态机是相当简单的,而大多数系统将需要更高级的模型。然而,在截图中介绍的概念(状态、事件和迁移),和我们在Windows工作流中用来创建状态机的概念是相同的。
在WF中,State活动表示在状态机工作流中的一个状态。随着事件的到达,工作流将会在State活动间迁移。状态机工作流必须指定一个初始状态,这将是该工作流的开始状态。状态机工作流还可以指定一个完成状态(可选的)。工作流将会在其迁移到完成状态后终结。
EventDriven活动表示状态机中的一个事件。我们把这些活动放在State活动中来表示该状态的合法事件。在EventDriven活动中,我们可以放置一系列将要在事件到达时执行的活动。序列中最后一个活动通常是SetState活动。SetState活动指定了下一个迁移状态。
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
- ››WF单元测试系列2:简单测试Activity的行为
更多精彩
赞助商链接