public void ScheduleJob(ProcessingQueueJob job, DateTime desiredExecutionTime)
 {
     lock (jobHeap)
     {
         jobHeap.Push(new PQEntry(job, desiredExecutionTime));
         Monitor.PulseAll(jobHeap);
     }
 }
 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;
 }
 public void ScheduleJob(ProcessingQueueJob job, int desiredExecutionDelay)
 {
     ScheduleJob(job, DateTime.Now.AddMilliseconds(desiredExecutionDelay));
 }
 public PQEntry(ProcessingQueueJob job, DateTime scheduledTime)
 {
     Job = job;
     ScheduledTime = scheduledTime;
 }