如何在Boost::Statechart中添加转换延迟

How to add transition delays in Boost::Statechart

本文关键字:添加 转换 延迟 Statechart Boost      更新时间:2023-10-16

如何在Boost Statechart中实现非阻塞转换延迟?

我看到了两种解释问题的方法。如果要实现异步状态机,请使用http://www.boost.org/doc/libs/1_55_0/libs/statechart/doc/tutorial.html#AsynchronousStateMachines

否则,如果你想延迟转换,你可以实现一个自定义转换,它总是丢弃事件,但设置一个带有异步回调的计时器,该计时器会发布一个不同的事件,导致转换在以后发生。不过,你可能不想在这段时间内处理事件。因此,您也可以转换到WaitingToTransition状态,而不是丢弃事件,该状态将延迟除计时器回调之外的所有事件。如果不想在延迟转换之前调用OnExit操作,可以将WaitingToTransition状态添加为子状态,同时添加一个无所事事的初始子状态。

如果这两个答案都不符合您的需求,请提供更多关于您想做什么的信息。