2013-11-22 74 views
4

最近我一直在试验无状态(C#中的HSM)(https://code.google.com/p/stateless/),我遇到了一些我不太确定如何实现的东西。无状态自动推进状态机

比方说,我有以下状态:

  • 开始。

  • 连接

  • 完成

我想要实现的是:在建立TCP连接(在连接状态)时,前进到阅读状态。或者,如果失败,则进入完成状态(可能会返回到连接状态并在超时后尝试新连接)。

如何使用Stateless实现此自动前进功能,因为从状态中触发触发器会导致堆栈溢出异常?

干杯

回答

5

鉴于我发现关于无国籍没有本地的解决方案做我问,我结束了在任务

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

这样做包裹.Fire(触发),指状态机不会按照说法自动前进,但是它是由外部源提高的,从而解决了SO异常。