我有一个stateMachine
需要在后台下载大量数据的地方State.LoadingOrderInfos
。当我的应用程序正在下载这些东西(在后台)时,操作员应该继续工作并通过下一个states
. 在State.InsertPcbs
我需要下载的数据。
简而言之。我想LoadECMDataAsync
在进入时打电话State.LoadingOrderInfos
,它不应该干扰正常的工作流程。
_machine.Configure(State.LoadingOrderInfos)
.Ignore(Trigger.WtPresent)
.Ignore(Trigger.WtNotPresent)
.SubstateOf(State.CanLogOut)
.Permit(Trigger.OrderLoadingFailed, State.OrderNotSelected)
.Permit(Trigger.OrderLoadingComplete, State.OrderCheckSetup)
.OnEntry(() =>
{
IsLoading = true;
Wt = null;
})
// Is this the way how to do it?
.OnEntry(() =>
{
LoadECMDataAsync();
})
.OnActivate(async () =>
{
if (await _LoadOrderInfos().ConfigureAwait(true))
{
_machine.Fire(Trigger.OrderLoadingComplete);
}
else
{
_machine.Fire(Trigger.OrderLoadingFailed);
}
})
.OnExit(() => IsLoading = false);