使用 FlowChart 与 Pick 的组合的 StateMachine 方案

本主题适用于 Windows Workflow Foundation 4。

此示例演示如何使用 FlowchartPick 活动的组合实现一个简单的秒表方案。它使用 Pick 活动中的 Receive 和 Send 来侦听秒表事件。

Dd807384.Important(zh-cn,VS.100).gif 注意:
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:

<安装驱动器>:\WF_WCF_Samples

如果该目录不存在,请转到(下载页)以下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:

<安装驱动器>:\WF_WCF_Samples\WF\Scenario\StateMachineWithPick

示例详细信息

下表列出了此示例中的项目。

项目名称

说明

StopWatchService

此项目包含秒表示例的状态计算机的实现,其中使用了 FlowchartPick 活动的组合。

Pick 活动在 Branches 属性中具有 3 条 PickBranch 语句,分别用于侦听 GetStartGetStopGetOff 事件。根据传入的事件,这三个分支中的一个分支的触发器将会激活并触发对应的 Action。在 Action 属性中,有一条用于计算转换是否为合法转换的 Switch 语句,如果它是合法的转换,则将 currentState 属性更新为正在转换状态并将其发送到客户端。

Flowchart 末尾的 FlowDecision 活动计算 currentState 属性来确定此状态是否为最终状态。如果它是最终状态,则工作流结束;否则,将控制权回送到 Pick 活动的开始位置,工作流在此处等待更多秒表事件。

StopWatchClient

这是一个简单的顺序工作流控制台应用程序,它用简单的 Send 或 Receive 活动组合发送各种秒表事件。

使用此示例

  1. 使用 Visual Studio 2010 打开 StateMachineWithPick.sln 解决方案文件。

  2. 若要生成解决方案,请按 F6。

  3. 通过右击 .exe 文件并选择**“以管理员身份运行”**,以管理员身份从 Windows 资源管理器中启动 StopWatchService.exe。

    1. 导航到 StateMachineWithPick\CS\StopWatchService\bin\Debug 文件夹。

    2. 右击 StopWatchService.exe 文件,并选择**“以管理员身份运行”**。

  4. 从 Visual Studio 2010 中启动 StopWatchClient 客户端应用程序。

    1. 在**“解决方案资源管理器”中,选择“StopWatchClient”项目,然后右击“设为启动项目”**。

    2. 若要运行解决方案,请按 Ctrl+F5。

  5. 切换回 StopWatchService.exe 的控制台窗口以查看状态转换。

Dd807384.Important(zh-cn,VS.100).gif 注意:
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:

<安装驱动器>:\WF_WCF_Samples

如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:

<安装驱动器>:\WF_WCF_Samples\WF\Scenario\StateMachineWithPick