/// <summary> /// Communicates a request for cancellation. /// </summary> public void Cancel() { lock (locker) { if (IsCancellationRequested || !TaskStatesChecker.IsPendingOrWorking(State)) { return; } State = TaskStates.Cancelling; } try { OnCancel(); } catch (OperationCanceledException) { } CancellationRequested?.Invoke(this, new EventArgs()); }
internal async Task DoRequestCancellation() { CancellationRequested?.Invoke(this, EventArgs.Empty); await Task.CompletedTask.ConfigureAwait(false); }
protected virtual void OnCancellationRequested() { CancellationRequested?.Invoke(null, new AutomaticCancellationEventArgs(cancellationResons)); }
private void RaiseCancellationRequestedEvent() { CancellationRequested?.Invoke(this, EventArgs.Empty); }