C# 在有限状态机中,我是否应该触发触发器以从OnEntry()方法更改状态?

C# 在有限状态机中,我是否应该触发触发器以从OnEntry()方法更改状态?,c#,.net,state-machine,stateless-state-machine,C#,.net,State Machine,Stateless State Machine,我在应用程序中使用无状态框架()来建模有限状态机。有些状态应该执行一些逻辑,然后立即转移到下一个状态。我想知道这样做是否是一种良好的做法: var machine=新状态机(State.Idle); machine.Configure(State.StateA) .OnEntry(()=> { DoSomeStuff(); _machine.Fire(Trigger.TriggerB);//移动到StateB }); 这种FSM设计好吗?如果不是,什么方法更好?我试图实现的想法是,让某些状态自

我在应用程序中使用无状态框架()来建模有限状态机。有些状态应该执行一些逻辑,然后立即转移到下一个状态。我想知道这样做是否是一种良好的做法:

var machine=新状态机(State.Idle);
machine.Configure(State.StateA)
.OnEntry(()=>
{
DoSomeStuff();
_machine.Fire(Trigger.TriggerB);//移动到StateB
});

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

你似乎在谈论国家推动还是国家拉动。这两种方法都有效,一种方法在某些情况下更有效

使用状态推送方法非常好,其中一个状态执行一些工作并调用一个转换