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);
示例#2
0
    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);