我应该触发触发器来改变有限状态机中的OnEntry()方法的状态吗?

mat*_*i82 5 .net c# state-machine stateless-state-machine

我正在使用无状态框架(https://code.google.com/p/stateless/)在我的应用程序中建模有限状态机.某些状态应该执行某些逻辑,然后立即进入下一个状态.我想知道这样做的好习惯如下:

            var machine = new StateMachine<State, Trigger>(State.Idle);
            machine.Configure(State.StateA)
            .OnEntry(() =>
            {
                DoSomeStuff();
               _machine.Fire(Trigger.TriggerB);     // move to StateB
            });
Run Code Online (Sandbox Code Playgroud)

这是一个很好的FSM设计吗?如果没有,那会有什么更好的方法?我试图实现的想法是让某些状态自动将机器推进到下一个状态,而不需要等待DoSomeStuff()完成然后触发机器在下一个状态下移动的外部代码.

ole*_*sii 6

你似乎在谈论国家推动与国家拉动.两种方法都有效,在某些情况下,一种方法可以更有效.

使用状态推送方法是完全正确的,其中一个状态执行某些操作并调用转换.