public static Task DisposeAsync(this IDisposable disposable) { if (null == disposable) { return(TplTaskExtensions.CompletedTask); } return(TaskEx.Run((Action)(() => DisposeExtensions.DisposeSafe(disposable)))); }
public static void CancelDisposeSafe(this CancellationTokenSource cancellationTokenSource) { if (null == cancellationTokenSource) { return; } CancellationTokenExtensions.CancelSafe(cancellationTokenSource); DisposeExtensions.DisposeSafe((IDisposable)cancellationTokenSource); }
public void Dispose() { if (0 != Interlocked.Exchange(ref this._isDisposed, 1)) { return; } DisposeExtensions.DisposeSafe((IDisposable)this._cancellationTokenRegistration); this.TrySetCanceled(); }
public bool TryDeregister() { if (AsyncFifoWorker.WorkHandle.State.Registered != this.SetState(AsyncFifoWorker.WorkHandle.State.Deregistered)) { return(false); } DisposeExtensions.DisposeSafe((IDisposable)this._cancellationTokenRegistration); return(true); }
public static void DisposeBackground(this IDisposable disposable, string description) { TaskCollector.Default.Add(DisposeExtensions.DisposeAsync(disposable), description); }