소스 검색

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