public async Task BasicTest() { var clock = SystemClock.Instance; await using var timerSet = new ConcurrentTimerSet <Timer>(new ConcurrentTimerSet <Timer> .Options() { Quanta = TimeSpan.FromMilliseconds(10), Clock = clock, FireHandler = t => t.FiredAt = CoarseCpuClock.Now, }); // AddOrUpdateToLater var t = new Timer(); timerSet.AddOrUpdate(t, clock.Now + TimeSpan.FromMilliseconds(100)); timerSet.AddOrUpdateToEarlier(t, clock.Now + TimeSpan.FromMilliseconds(200)) .Should().BeFalse(); timerSet.AddOrUpdateToLater(t, clock.Now + TimeSpan.FromMilliseconds(200)) .Should().BeTrue(); t.FiredAt.Should().Be(default);
public async Task BasicTest() { var clock = MomentClockSet.Default.CpuClock; await using var timerSet = new ConcurrentTimerSet <Timer>( new ConcurrentTimerSet <Timer> .Options() { Quanta = TimeSpan.FromMilliseconds(10), Clock = clock, }, timer => timer.FiredAt = clock.Now); // AddOrUpdateToLater var t = new Timer(); timerSet.AddOrUpdate(t, clock.Now + TimeSpan.FromMilliseconds(100)); timerSet.AddOrUpdateToEarlier(t, clock.Now + TimeSpan.FromMilliseconds(200)) .Should().BeFalse(); timerSet.AddOrUpdateToLater(t, clock.Now + TimeSpan.FromMilliseconds(200)) .Should().BeTrue(); t.FiredAt.Should().Be(default);