Browse Source

Adding AsyncDisposable.Nop.

Bart De Smet 8 years ago
parent
commit
3aec943391

+ 7 - 0
AsyncRx.NET/System.Reactive.Async/System/Reactive/Disposables/AsyncDisposable.cs

@@ -9,6 +9,8 @@ namespace System.Reactive.Disposables
 {
     public static class AsyncDisposable
     {
+        public static IAsyncDisposable Nop { get; } = new NopAsyncDisposable();
+
         public static IAsyncDisposable Create(Func<Task> dispose)
         {
             if (dispose == null)
@@ -28,5 +30,10 @@ namespace System.Reactive.Disposables
 
             public Task DisposeAsync() => Interlocked.Exchange(ref _dispose, null)?.Invoke() ?? Task.CompletedTask;
         }
+
+        private sealed class NopAsyncDisposable : IAsyncDisposable
+        {
+            public Task DisposeAsync() => Task.CompletedTask;
+        }
     }
 }