internal async Task Pop(CancellationToken cancellationToken) { Debug.Assert(_state == AppStateState.Pushed); try { if (_substateManager != null) { await _substateManager.PopAll(); } _state = AppStateState.Popped; _console.TraceData(TraceEventType.Verbose, 0, "- PopState " + _fullName); _controllerEvents?.OnPop(); _parentStateManager.InvokeStatePopped(_eventArgs); } catch (Exception e) { _console.TraceData(TraceEventType.Error, 0, e); } finally { Dispose(); } }
internal void InvokeStatePopped(AppStateEventArgs args) { try { StatePopped?.Invoke(this, args); } catch (Exception e) { _console.TraceData(TraceEventType.Error, 0, e); } _parentStateManager?.InvokeStatePopped(args); }