“状态机标记工作流”示例

Download sample

此示例包括一个简单的状态机工作流,该工作流是用代码旁置以标记 (XAML) 形式创建的。 它使用状态机工作流来实现包含三个状态的简单的状态机。 状态机从启动状态转换为状态 1,然后从状态 1 转换为 CompletedState。

状态机工作流包含多个状态。 每个状态都由一个或多个事件处理程序组成。 每个事件处理程序都必须包含延迟或 IEventActivity 作为第一个活动。 每个事件处理程序还可以包含用于从一个状态转换为另一个状态的 SetStateActivity 活动。

每个状态机工作流都有两个属性:InitialStateNameCompletedStateName。 状态机工作流的实例创建后将被放入 InitialStateName 属性。 状态机到达 CompletedStateName 属性时将完成执行。

在此示例中,启动状态为 InitialStateName,并且具有事件处理程序。 该事件处理程序具有 DelayActivity 活动作为它的第一个活动。 DelayActivity 活动的延迟超时为两秒。 该事件处理程序还具有 SetStateActivity 以转换为状态 1。

状态 1 类似于启动状态,并且具有其中包含延迟活动的事件处理程序。 延迟超时设置为两秒。 该事件处理程序还具有一组可转换为状态 2 的状态活动。

CompletedState 是最终状态。 转换为 CompletedState 后,状态机将停止执行。

以标记形式创建状态机工作流

  1. 右击项目,指向**“添加”,然后选择“新建项”**。

  2. 选择**“状态机工作流 (具有单独的代码)”**。

    创建了工作流后,您可以添加活动并在项目中使用该工作流,就好像使用仅限代码的工作流一样。

生成示例

  1. 通过单击**“下载示例”**来下载该示例。

    这会将示例项目提取到本地硬盘。

  2. 单击**“开始”,依次指向“程序”“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。

  3. 转到示例的源目录。

  4. 在命令提示符处键入 MSBUILD <解决方案文件名>

运行示例

  • 在 SDK 命令提示窗口中,运行 StateMachineMarkupWorkflow\bin\debug 文件夹(对于该示例的 VB 版本为 StateMachineMarkupWorkflow\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。

请参见

其他资源

Using Workflow Markup
State Machine Workflows
Workflow Authoring Styles

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。