自动推进状态机与无状态

我最近一直在试验Stateless(C#中的HSM)( https://code.google.com/p/stateless/ ),而且我遇到了一些我不确定如何实现的东西。

假设我有以下状态:

  • 开始。

我想要实现的是:当建立TCP连接(处于连接状态)时,进入读状态。 或者,如果失败,则进入“完成”状态(可以返回“连接”状态并在超时后尝试新连接)。

如何使用Stateless实现此自动推进function,因为从状态内触发触发器会导致堆栈溢出exception?

干杯

鉴于我没有找到无状态的本机解决方案来执行我的要求,我最终将.Fire(触发器)包装在任务中

Task.Start(() => _stateMachine.Fire(trigger)); 

这样做意味着状态机不会按照说法自行前进,但是它由外部源代替,解决了SOexception。