“语音应用程序”示例
语音应用程序示例演示如何使用状态机来创建灵活的进程。 它还演示了递归状态和状态初始化活动的使用。
该语音应用程序是一个典型的交互式语音应答 (IVR) 应用程序。 该应用程序中使用的状态机工作流将呈现一个典型的电话应用程序菜单,该菜单由表示不同菜单级别的不同状态组成。 在每种状态中,只有某些事件是有效的,并表示在该菜单中可用的选项。
每种状态中有两个可用菜单选项:
“*”菜单选项结束通话。
“9”选项返回到主菜单。
处理这些事件的事件处理程序附加到根状态机。 因此,这些事件处理程序由每种状态继承,并且可在每种状态中使用。
用户界面由一系列用于与系统通信的按钮组成。 在每种状态中,只有一部分按钮处于启用状态。 这是通过使用状态机模型附带的查询功能完成的。 您可以浏览代码以了解如何使用 StateMachineWorkflowInstance 来查询状态机,并检索当前状态以及在当前状态中有效的事件。
生成示例
通过单击本主题中的**“下载示例”**来下载该示例。
这会将示例项目提取到本地硬盘。
单击**“开始”,依次指向“程序”和“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。
转到示例的源目录。
在命令提示符处键入 MSBUILD <解决方案文件名>。
运行示例
在 SDK 命令提示窗口中,运行 SpeechUI\bin\debug 文件夹中的 .exe 文件,该文件夹位于该示例的主文件夹下。
单击**“Start Phone Session”(开始电话会话)**。
注意下列事项:
出现的文本模拟电话发出的通信。
只有对应于可用菜单选项的按钮处于启用状态。 您可以选择任意菜单项并查看状态机如何做出响应。
**“*”和“9”**按钮始终处于活动状态。 这是因为对应于这些按钮的事件处理程序是在根状态机级别处理的
请参见
其他资源
Tutorial: Create a State Machine Workflow
State Machine Workflows
“订单状态机”示例
Windows Workflow Foundation 示例
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。