private void InvokeChildren(StateChildMethods method) { foreach (var state in Substates) { IStateBehavior behavior = state.Value; switch (method) { case StateChildMethods.Enter: behavior.OnStateEnter(); break; case StateChildMethods.Update: behavior.OnStateUpdate(); break; case StateChildMethods.Render: behavior.OnStateRender(); break; case StateChildMethods.Exit: behavior.OnStateExit(); break; default: Debug.WriteLine("Cannot invoke this method as sync."); break; } } }
private async Task InvokeChildrenAsync(StateChildMethods method) { foreach (var state in Substates) { IStateBehavior behavior = state.Value; switch (method) { case StateChildMethods.UpdateAsync: await behavior.OnStateUpdateAsync(); break; case StateChildMethods.RenderAsync: await behavior.OnStateRenderAsync(); break; default: Debug.WriteLine("Cannot invoke this method as async."); break; } } }