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)); }
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)); }