c# – 使用无状态自动推进状态机
作者:互联网
我最近一直在试验无状态(HSM in C#)(https://code.google.com/p/stateless/),而且我遇到了一些我不确定如何实现的东西.
假设我有以下状态:
>开始.
>连接
>阅读
>完成
我想要实现的是:当TCP连接(处于Connect状态)建立时,进入Read状态.或者,如果失败,则进入“完成”状态(它可能会返回“连接”状态并在超时后尝试新连接).
如何使用Stateless实现此自动推进功能,因为从状态内触发触发器会导致堆栈溢出异常?
干杯
解决方法:
鉴于我没有找到无状态的本机解决方案来做我所问的,我最终将.Fire(触发器)包装在一个任务中
Task.Start(() => _stateMachine.Fire(trigger));
这样做意味着状态机不会按照说法自行前进,但它由外部源代替,解决了SO异常.
标签:c,state-machine,stateless,stateless-state-machine 来源: https://codeday.me/bug/20190517/1120986.html