Example #1
0
        public void Schedule(Callback callback, DateTime deadline)
        {
            var task = new DelayTask();

            task.deadline = deadline;
            task.callback = callback;
            lock (this.queue)
            {
                this.queue.Enqueue(task);
            }
        }
Example #2
0
 private void NextSchedule(DelayTask item)
 {
     if (item.interval <= 0)
     {
         return;
     }
     item.deadline = DateTime.Now.AddSeconds(item.interval);
     lock (this.queue)
     {
         this.queue.Enqueue(item);
     }
 }
Example #3
0
        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);
        }