public void SchedulePeriodic_ArgumentChecking() { var disp = DispatcherHelpers.EnsureDispatcher(); var s = new DispatcherScheduler(disp); ReactiveAssert.Throws <ArgumentNullException>(() => s.SchedulePeriodic(42, TimeSpan.FromSeconds(1), default(Func <int, int>))); ReactiveAssert.Throws <ArgumentOutOfRangeException>(() => s.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), x => x)); }
public void SchedulePeriodic() { using (DispatcherHelpers.RunTest(out var disp)) { var evt = new ManualResetEvent(false); var id = Thread.CurrentThread.ManagedThreadId; var sch = new DispatcherScheduler(disp); var d = new SingleAssignmentDisposable(); d.Disposable = sch.SchedulePeriodic(1, TimeSpan.FromSeconds(0.1), n => { Assert.NotEqual(id, Thread.CurrentThread.ManagedThreadId); if (n == 3) { d.Dispose(); sch.Schedule(TimeSpan.FromSeconds(0.2), () => { Assert.NotEqual(id, Thread.CurrentThread.ManagedThreadId); evt.Set(); }); } if (n > 3) { Assert.True(false); } return(n + 1); }); evt.WaitOne(); } }
public void SchedulePeriodic() { var evt = new ManualResetEvent(false); var id = Thread.CurrentThread.ManagedThreadId; var disp = DispatcherHelpers.EnsureDispatcher(); var sch = new DispatcherScheduler(disp); var d = new SingleAssignmentDisposable(); d.Disposable = sch.SchedulePeriodic(1, TimeSpan.FromSeconds(0.1), n => { Assert.AreNotEqual(id, Thread.CurrentThread.ManagedThreadId); if (n == 3) { d.Dispose(); sch.Schedule(TimeSpan.FromSeconds(0.2), () => { Assert.AreNotEqual(id, Thread.CurrentThread.ManagedThreadId); evt.Set(); }); } if (n > 3) { Assert.Fail(); } return(n + 1); }); evt.WaitOne(); disp.InvokeShutdown(); }
public void SchedulePeriodic() { var evt = new ManualResetEvent(false); var id = Thread.CurrentThread.ManagedThreadId; var disp = DispatcherHelpers.EnsureDispatcher(); var sch = new DispatcherScheduler(disp); var d = new SingleAssignmentDisposable(); d.Disposable = sch.SchedulePeriodic(1, TimeSpan.FromSeconds(0.1), n => { Assert.AreNotEqual(id, Thread.CurrentThread.ManagedThreadId); if (n == 3) { d.Dispose(); sch.Schedule(TimeSpan.FromSeconds(0.2), () => { Assert.AreNotEqual(id, Thread.CurrentThread.ManagedThreadId); evt.Set(); }); } if (n > 3) { Assert.Fail(); } return n + 1; }); evt.WaitOne(); disp.InvokeShutdown(); }
public void SchedulePeriodic_ArgumentChecking() { var disp = DispatcherHelpers.EnsureDispatcher(); var s = new DispatcherScheduler(disp); ReactiveAssert.Throws<ArgumentNullException>(() => s.SchedulePeriodic(42, TimeSpan.FromSeconds(1), default(Func<int, int>))); ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), x => x)); }