我正在尝试让我的 Windows 状态机工作流程与最终用户进行通信。我试图在 StateActivity 中实现的一般模式是:
StateInitializationActivity:向用户发送请求回答问题的消息(例如“您批准此文档吗?”),以及...的上下文...
...EventDrivenActivity:处理用户发送的答案
StateFinalizationActivity:取消消息(例如文件被撤回,不再需要批准)
如果 StateActivity 是“叶状态”(即没有子状态),这一切都可以正常工作。但是,如果我想使用状态的递归组合,它就不起作用。对于非叶状态,StateInitialization 和 StateFinalization 不会运行(我通过使用 Reflector 检查 StateActivity 源代码确认了这种行为)。EventDrivenActivity 仍在监听,但最终用户不知道发生了什么。
对于 StateInitialization,我认为解决此问题的一种方法是将其替换为 EventDrivenActivity 和零延迟计时器。我对如何处理 StateFinalization 感到困惑。
那么 - 是否有人对如何让状态最终确定活动始终运行有任何想法,即使对于非叶状态也是如此?