public void DisposeInAsync()
 {
     int i = 0;
     // This tests that ContextDisposable.Dispose() is not done in async mode.
     var d = new ContextDisposable (new SynchronizationContext (), Disposable.Create (() => { Thread.Sleep (200); i++; }));
     d.Dispose ();
     Assert.IsTrue (d.IsDisposed, "#1");
     Assert.AreEqual (0, i, "#2"); // not (very likely) yet
     Assert.IsTrue (SpinWait.SpinUntil (() => i != 0, 1000), "#3");
 }
Beispiel #2
0
 public void ContextDisposable()
 {
     var disp = false;
     var m = new MySync();
     var c = new ContextDisposable(m, Disposable.Create(() => { disp = true; }));
     Assert.AreSame(m, c.Context);
     Assert.IsFalse(m._disposed);
     Assert.IsFalse(disp);
     c.Dispose();
     Assert.IsTrue(c.IsDisposed);
     Assert.IsTrue(m._disposed);
     Assert.IsTrue(disp);
 }