public static Task DisposeAsync(this IDisposable disposable)
 {
     if (null == disposable)
     {
         return(TplTaskExtensions.CompletedTask);
     }
     return(TaskEx.Run((Action)(() => DisposeExtensions.DisposeSafe(disposable))));
 }
Example #2
0
 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();
 }
Example #4
0
 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);
 }