소스 검색

AsyncEnumerable.ToObservable: Use Try...-methods on TaskCompletionSources to avoid unexpected exceptions when the iterator is cancelled.

Daniel Weber 8 년 전
부모
커밋
f47d85ef7c
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 3
      Ix.NET/Source/System.Interactive.Async/ToObservable.cs

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/ToObservable.cs

@@ -119,7 +119,7 @@ namespace System.Linq
 
                 if (tcs != null)
                 {
-                    tcs.SetResult(false);
+                    tcs.TrySetResult(false);
                 }
             }
 
@@ -140,7 +140,7 @@ namespace System.Linq
 
                 if (tcs != null)
                 {
-                    tcs.SetException(error);
+                    tcs.TrySetException(error);
                 }
             }
 
@@ -165,7 +165,7 @@ namespace System.Linq
 
                 if (tcs != null)
                 {
-                    tcs.SetResult(true);
+                    tcs.TrySetResult(true);
                 }
             }
         }