public void ScheduleJob(ProcessingQueueJob job, DateTime desiredExecutionTime) { lock (jobHeap) { jobHeap.Push(new PQEntry(job, desiredExecutionTime)); Monitor.PulseAll(jobHeap); } }
public void ScheduleJob(ProcessingQueueJob job, int desiredExecutionDelay) { ScheduleJob(job, DateTime.Now.AddMilliseconds(desiredExecutionDelay)); }
public PQEntry(ProcessingQueueJob job, DateTime scheduledTime) { Job = job; ScheduledTime = scheduledTime; }