示例#1
0
        public async Task Kick()
        {
            var interval = TimeSpan.FromSeconds(1);

            var stopwatch = Stopwatch.StartNew();

            var watchdog = new WatchdogTimer(() => stopwatch.Stop())
            {
                Interval = interval
            };

            const int count = 4;
            const int delay = 500;

            for (var i = 0; i < count; i++)
            {
                watchdog.Kick(); // kick start.

                await Task.Delay(delay);
            }

            Assert.True(watchdog.IsEnabled);
            // ReSharper disable once ArrangeRedundantParentheses
            Assert.True(stopwatch.ElapsedMilliseconds <= (count * delay) + 200);
            // ReSharper disable once ArrangeRedundantParentheses
            Assert.True(stopwatch.ElapsedMilliseconds >= (count * delay) - 200);
        }
示例#2
0
        public async Task Timeout()
        {
            var interval = TimeSpan.FromMilliseconds(500);

            var stopwatch = Stopwatch.StartNew();

            // ReSharper disable once UnusedVariable
            var watchdog = new WatchdogTimer(() => stopwatch.Stop())
            {
                Interval = interval
            };

            watchdog.Kick(); // kick start.

            await Task.Delay(1000);

            Assert.True(stopwatch.ElapsedMilliseconds <= interval.TotalMilliseconds + 200);
            Assert.True(stopwatch.ElapsedMilliseconds >= interval.TotalMilliseconds - 200);
        }