public void Dispose() { _foregroundDispatcher.AssertForegroundThread(); foreach (var update in _updates) { if (!update.Value.Task.IsCompleted) { update.Value.Cts.Cancel(); } } BlockBackgroundWorkStart?.Set(); }
public void Dispose() { _disposed = true; foreach (var update in Updates) { if (!update.Value.Task.IsCompleted && !update.Value.Cts.IsCancellationRequested) { update.Value.Cts.Cancel(); } } _semaphore.Dispose(); BlockBackgroundWorkStart?.Set(); }