Пример #1
0
        public void AsyncTimer_CancelAll()
        {
            DateTime     start = SysTime.Now;
            IAsyncResult ar1, ar2;

            ar1 = AsyncTimer.BeginTimer(TimeSpan.FromSeconds(20), null, null);
            ar2 = AsyncTimer.BeginTimer(TimeSpan.FromSeconds(30), null, null);
            Thread.Sleep(5000);
            AsyncTimer.CancelTimer(ar1);
            AsyncTimer.CancelTimer(ar2);

            try
            {
                AsyncTimer.EndTimer(ar1);
                Assert.Fail("Expected a CancelException");
                AsyncTimer.EndTimer(ar2);
                Assert.Fail("Expected a CancelException");
            }
            catch (CancelException)
            {
            }

            Assert.IsTrue(SysTime.Now >= start + TimeSpan.FromSeconds(5) - SysTime.Resolution);
            Assert.IsTrue(SysTime.Now <= start + TimeSpan.FromSeconds(6) - SysTime.Resolution);
        }