예제 #1
0
        public async Task RecurringTimer_Async()
        {
            var timer  = new RecurringTimer(RecurringTimerType.Interval, TimeSpan.FromSeconds(1));
            var sysNow = SysTime.Now;

            timer.Reset();
            Assert.False(timer.HasFired());
            await timer.WaitAsync(TimeSpan.FromMilliseconds(500));

            Assert.True(SysTime.Now + TimeSpan.FromMilliseconds(50) - sysNow > TimeSpan.FromSeconds(1));
        }
예제 #2
0
        public async Task RecurringTimer_Set()
        {
            var timer = new RecurringTimer("Interval:00:00:05");

            Assert.False(timer.HasFired());

            timer.Set();
            Assert.True(timer.HasFired());
            Assert.False(timer.HasFired());

            var startUtc = DateTime.UtcNow;

            await timer.WaitAsync(TimeSpan.FromMilliseconds(50));

            Assert.True(DateTime.UtcNow - startUtc >= TimeSpan.FromSeconds(5));
        }