“简单的状态机”示例

Download sample

此示例演示如何使用状态机工作流来实现包含三个状态的简单的状态机。 状态机从启动状态转换为状态 1,然后从状态 1 转换为状态 2。

状态机工作流包含多个状态。 每个状态都由一个或多个 EventDrivenActivity 活动组成。 每个 StateActivity 都可以包含一个 StateInitializationActivity、一个或多个 EventDrivenActivity 活动,以及一个 StateFinalizationActivity。 它可以包含任意或全部这些活动。

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

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

状态 1 类似于启动状态,并且具有其中包含延迟活动的 EventDrivenActivity。 延迟超时设置为五秒。 EventDrivenActivity 也具有一组会转换为状态 2 的状态活动。

状态 2 是完成状态。 转换为状态 2 后,状态机将停止执行。

生成示例

  1. 通过单击本主题中的**“下载示例”**来下载该示例。

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

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

  3. 转到示例的源目录。

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

运行示例

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

请参见

参考

StateMachineWorkflowActivity
SetStateActivity
StateInitializationActivity

其他资源

Using the State Activity
Using the StateInitialization Activity
Using the SetState Activity
Creating a State Machine Workflow
State Machine Workflows
“基本工作流”示例
Windows Workflow Foundation 示例

Footer image

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