public PeriodicTask(Action task, IndexedMultipleDisposable d, long start, TimeSpan period, ITimedScheduling scheduler) { this.task = task; this.start = start; this.d = d; this.scheduler = scheduler; }
/// <inheritdoc/> public IDisposable Schedule(Action task, TimeSpan initialDelay, TimeSpan period) { IndexedMultipleDisposable d = new IndexedMultipleDisposable(); long start = NowUtc + (long)initialDelay.TotalMilliseconds; PeriodicTask t = new PeriodicTask(task, d, start, period, this); d.Replace(Schedule(t.Run, initialDelay), 0); return(d); }