编程语言
首页 > 编程语言> > c# – 使用无状态自动推进状态机

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