private static long Schedule(JobProcessor loop, IJob job, DateTime time) { lock (Scheduler.scheduleList) { while (Scheduler.scheduleList.ContainsKey(time)) { time = time.AddTicks(1L); } Scheduler.scheduleList.Add(time, new Scheduler.JobPair(loop, job)); } Scheduler.enqueueEvent.Set(); return(time.Ticks); }
public static long Schedule(JobProcessor loop, IJob job, int milliSecond) { return(Scheduler.Schedule(loop, job, DateTime.UtcNow.AddTicks((long)milliSecond * 10000L))); }
public static long Schedule(JobProcessor loop, IJob job, TimeSpan timeSpan) { return(Scheduler.Schedule(loop, job, DateTime.UtcNow + timeSpan)); }
public JobPair(JobProcessor jobProcessor, IJob job) { this.JobProcessor = jobProcessor; this.Job = job; }