这次我有一个关于状态机超时的问题。我的场景是这样的,参考下图
进入 StateBasic 时,我执行一些操作,工厂提供的机器在 WaitForTemplateResult 等待,直到 VAS_QRY_RES 或 MAIN_QRY_RES 事件之一。
现在还有一个超时,它会在 30 秒后触发。所以现在发生的事情是即使 VAS_QRY_RES 或 MAIN_QRY_RES 出现,也会触发超时。
我研究了这个问题,我能够给出的解释是,当我第一次进入 StateBasic 时,StateMachineFactory 分配了一台带有 uuid 的机器,当 VAS_QRY_RES 或 MAIN_QRY_RES 出现时,它分配了另一台我确认是不同 uuid 的机器。无论如何都会触发前一台机器的超时(使用第一个 uuid)。