public void Suspend() { if (!Running) { return; } Running = false; Suspended?.Invoke(this); }
/// <summary> /// Приостановить работу модуля. /// </summary> public async ValueTask <Nothing> SuspendModule() { if (_suspendedAware && Interlocked.Exchange(ref _isSuspended, 1) == 0) { if (_suspendAwareCallbacks != null) { await _suspendAwareCallbacks.OnSuspendLifetimeCallback(); } Suspended?.Invoke(null); } return(Nothing.Value); }
public async Task SuspendAsync() { this.LogInfo(); Suspending?.Invoke(this, EventArgs.Empty); // save the navigation state await FrameLogic.SaveNavigationState(Id, _frame); // call the view-model's OnSuspending await SuspensionLogic.CallSuspendAsync(CurrentViewModel as ISuspensionAware); Suspended?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Приостановить работу модуля. /// </summary> public async ValueTask <Nothing> SuspendModule() { if (Interlocked.Exchange(ref _isSuspended, 1) == 0) { List <ValueTask <Nothing> > tasks = new List <ValueTask <Nothing> >(); foreach (var pt in _providers.Values) { foreach (var p in pt.Select(p => p.QueryView <IModuleLifetime>()).Where(p => p != null && p.IsSuspendAware)) { tasks.Add(p.SuspendModule()); } } foreach (var task in tasks) { await task; } Suspended?.Invoke(null); } return(Nothing.Value); }
protected override void OnSuspend() { Suspended?.Invoke(this, EventArgs.Empty); }
public void OnConnectionSuspended(int cause) => Suspended?.Invoke(cause);
public void Suspend() { Running = false; Suspended?.Invoke(this); }
public virtual void Suspend() { State = SceneState.SUSPENDED; Suspended?.Invoke(this, new EventArgs()); Stopped?.Invoke(this, new EventArgs()); }