public void Schedule(Callback callback, DateTime deadline) { var task = new DelayTask(); task.deadline = deadline; task.callback = callback; lock (this.queue) { this.queue.Enqueue(task); } }
private void NextSchedule(DelayTask item) { if (item.interval <= 0) { return; } item.deadline = DateTime.Now.AddSeconds(item.interval); lock (this.queue) { this.queue.Enqueue(item); } }
public DelayTask ScheduleAtFixDelay(Callback callback, int interval) { var task = new DelayTask(); task.deadline = DateTime.Now.AddSeconds(interval); task.interval = interval; task.callback = callback; lock (this.queue) { this.queue.Enqueue(task); } return(task); }