public void SynchronizationContext_Now() { var ms = new MySync(); var s = new SynchronizationContextScheduler(ms); var res = s.Now - DateTime.Now; Assert.IsTrue(res.Seconds < 1); }
public void SynchronizationContext_ScheduleAction() { var ms = new MySync(); var s = new SynchronizationContextScheduler(ms); var ran = false; s.Schedule(() => { ran = true; }); Assert.IsTrue(ms.Count == 1); Assert.IsTrue(ran); }
public void SynchronizationContext_ScheduleActionDue() { var ms = new MySync(); var s = new SynchronizationContextScheduler(ms); var evt = new ManualResetEvent(false); var sw = new Stopwatch(); sw.Start(); s.Schedule(() => { sw.Stop(); evt.Set(); }, TimeSpan.FromSeconds(0.2)); evt.WaitOne(); Assert.IsTrue(sw.ElapsedMilliseconds > 180, "due " + sw.ElapsedMilliseconds); Assert.IsTrue(ms.Count == 1); }
public void SynchronizationContext_ScheduleActionError() { var ms = new MySync(); var s = new SynchronizationContextScheduler(ms); var ex = new Exception(); try { s.Schedule(() => { throw ex; }); Assert.Fail(); } catch (Exception e) { Assert.AreSame(e, ex); } Assert.IsTrue(ms.Count == 1); }