“状态机标记工作流”示例
此示例包括一个简单的状态机工作流,该工作流是用代码旁置以标记 (XAML) 形式创建的。 它使用状态机工作流来实现包含三个状态的简单的状态机。 状态机从启动状态转换为状态 1,然后从状态 1 转换为 CompletedState。
状态机工作流包含多个状态。 每个状态都由一个或多个事件处理程序组成。 每个事件处理程序都必须包含延迟或 IEventActivity 作为第一个活动。 每个事件处理程序还可以包含用于从一个状态转换为另一个状态的 SetStateActivity 活动。
每个状态机工作流都有两个属性:InitialStateName 和 CompletedStateName。 状态机工作流的实例创建后将被放入 InitialStateName 属性。 状态机到达 CompletedStateName 属性时将完成执行。
在此示例中,启动状态为 InitialStateName,并且具有事件处理程序。 该事件处理程序具有 DelayActivity 活动作为它的第一个活动。 DelayActivity 活动的延迟超时为两秒。 该事件处理程序还具有 SetStateActivity 以转换为状态 1。
状态 1 类似于启动状态,并且具有其中包含延迟活动的事件处理程序。 延迟超时设置为两秒。 该事件处理程序还具有一组可转换为状态 2 的状态活动。
CompletedState 是最终状态。 转换为 CompletedState 后,状态机将停止执行。
以标记形式创建状态机工作流
右击项目,指向**“添加”,然后选择“新建项”**。
选择**“状态机工作流 (具有单独的代码)”**。
创建了工作流后,您可以添加活动并在项目中使用该工作流,就好像使用仅限代码的工作流一样。
生成示例
通过单击**“下载示例”**来下载该示例。
这会将示例项目提取到本地硬盘。
单击**“开始”,依次指向“程序”和“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。
转到示例的源目录。
在命令提示符处键入 MSBUILD <解决方案文件名>。
运行示例
- 在 SDK 命令提示窗口中,运行 StateMachineMarkupWorkflow\bin\debug 文件夹(对于该示例的 VB 版本为 StateMachineMarkupWorkflow\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。
请参见
其他资源
Using Workflow Markup
State Machine Workflows
Workflow Authoring Styles
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。