0

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

4

1 回答 1

0

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

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

如果这些答案都不能满足您的需求,请提供有关您想要做什么的更多信息。

于 2013-12-07T22:05:37.673 回答