WEB开发网
开发学院软件开发C语言 《WF编程》系列之46 第七章 事件驱动工作流 阅读

《WF编程》系列之46 第七章 事件驱动工作流

 2010-10-01 08:20:51 来源:WEB开发网   
核心提示: 到目前为止,我们可以继续添加EventDriven活动到我们的工作流中,《WF编程》系列之46 第七章 事件驱动工作流(9),我们需要覆盖在bug生命期中的所有的事件和迁移,状态机的一个优点是,这就会依次寄宿那些实现了IBugService接口的本地通信服务,第3章包括了本地通信服务,我们控制

到目前为止,我们可以继续添加EventDriven活动到我们的工作流中。我们需要覆盖在bug生命期中的所有的事件和迁移。状态机的一个优点是,我们控制了哪个事件在哪个具体的状态下是合法的。例如,除了初始状态,我们不想要任何状态来处理BugOpened事件。我们还可以设计我们的状态机,从而在延迟状态中的bug将只会处理一个BugAssigned事件。下面的截图显示了我们的状态机,并在适当的位置具有所有的事件和迁移。

《WF编程》系列之46 第七章 事件驱动工作流

注意到,在上面的截图中,BugClosedState不需要处理任何事件。这个状态是完成状态,并且工作流将不会处理任何额外的事件。

StateInitialization和StateFinalization活动

我们可以拖动到State活动中的两个额外的活动是StateInitialization活动和StateFinalization活动。State活动可以具有一个StateInitialization活动和一个StateFinalization活动。

这两种活动都将顺次执行一组子活动。当状态机迁移到包括初始化活动的状态时,StateInitialization活动会运行。相反,只要状态机迁移到包括终结活动的状态之外,StateFinalization活动就会执行。使用这两个活动,我们可以在我们的状态机的状态中执行预处理和后事处理。

驱动状态机

开始一个状态机工作流与开始其它工作流没有什么不同。我们首先创建WorkflowRuntime类的一个实例。我们将需要运行时寄宿(host)一个ExternalDataExchangeService,这就会依次寄宿那些实现了IBugService接口的本地通信服务。第3章包括了本地通信服务,以及ExternalDataExchangeService的更多细节。

上一页  4 5 6 7 8 9 10  下一页

Tags:WF 编程 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接