Exemplo n.º 1
0
        private void AddTimer(Minute interval)
        {
            long startDateTicks = _startTime.Value.AsUtc().Ticks;
            long span = interval.AsTimeSpan().Ticks;
            long cycles;
            long remainder = Math.DivRem(DateTime.UtcNow.Ticks - startDateTicks, span, out cycles);
            long dueTime = startDateTicks + (span * (cycles + 1)) - remainder;

            _timers[interval] = new ThreadingTimer(_timerDelegate, interval, dueTime, span);
        }
Exemplo n.º 2
0
 public void RingAtEach(Minute interval, Minute duration)
 {
     _duration = duration.AsTimeSpan().Milliseconds;
     EmptySchedules();
     base.AddPeriodicTask(interval, Ring);
 }