浏览代码

Adding AsyncDisposable.Nop.

Bart De Smet 8 年之前
父节点
当前提交
3aec943391
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      AsyncRx.NET/System.Reactive.Async/System/Reactive/Disposables/AsyncDisposable.cs

+ 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;
+        }
     }
 }