예제 #1
0
            public void OneTimesExecuteTest()
            {
                var    executeTimes = 0;
                ITimer timer        = new LowAccurateTimer();
                Action <CancellationToken> action = (c) =>
                {
                    executeTimes++;
                };

                timer.AddOneTime(action, TimeSpan.FromMilliseconds(100));
                Thread.Sleep(120);
                Assert.Equal(1, executeTimes);
            }
예제 #2
0
            public void InfinityTimesExecuteTest()
            {
                const int executeNumber = 12;
                const int sleepTime     = 100;

                var    executeTimes = 0;
                ITimer timer        = new LowAccurateTimer();
                Action <CancellationToken> action = (c) => { executeTimes++; };

                timer.AddNumberTimes(action, TimeSpan.FromMilliseconds(sleepTime), 0);
                Thread.Sleep(sleepTime * executeNumber);
                timer.Remove(action);
                // надеемся, что он будет вызван хотя бы 75% от общего количества раз
                Assert.InRange(executeTimes, executeNumber * 3 / 4, executeNumber);
            }
예제 #3
0
            public void TwoTimesExecuteTest()
            {
                ITimer timer = new LowAccurateTimer();

                TestTimer(timer, 20, 2);
            }