浏览代码

4.x: Fix race condition in UsingAsync_Simple unit test (#553)

David Karnok 7 年之前
父节点
当前提交
86b3b94a09
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/UsingAsyncTest.cs

+ 4 - 4
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/UsingAsyncTest.cs

@@ -33,17 +33,17 @@ namespace ReactiveTests.Tests
         [Fact]
         [Fact]
         public void UsingAsync_Simple()
         public void UsingAsync_Simple()
         {
         {
-            var done = false;
+            var done = new CountdownEvent(1);
 
 
             var xs = Observable.Using<int, IDisposable>(
             var xs = Observable.Using<int, IDisposable>(
-                ct => Task.Factory.StartNew<IDisposable>(() => Disposable.Create(() => done = true)),
+                ct => Task.Factory.StartNew<IDisposable>(() => Disposable.Create(() => done.Signal())),
                 (_, ct) => Task.Factory.StartNew<IObservable<int>>(() => Observable.Return(42))
                 (_, ct) => Task.Factory.StartNew<IObservable<int>>(() => Observable.Return(42))
             );
             );
 
 
             var res = xs.ToEnumerable().ToList();
             var res = xs.ToEnumerable().ToList();
 
 
-            Assert.True(new[] { 42 }.SequenceEqual(res));
-            Assert.True(done);
+            Assert.Equal(new List<int> { 42 }, res);
+            Assert.True(done.Wait(5000), "done.Wait(5000)");
         }
         }
 
 
         [Fact]
         [Fact]