Beispiel #1
0
 public void PopProcessedJob()
 {
     lock (_processedJobLock)
     {
         ProcessedJobQueue.RemoveAt(0);
     }
 }
Beispiel #2
0
 public object PopProcessedJob()
 {
     lock (_processedJobLock)
     {
         return(ProcessedJobQueue.Dequeue());
     }
 }
Beispiel #3
0
        public void PushProcessedJob(object processedJob)
        {
            lock (_processedJobLock)
            {
                if (processedJob is ImageJobModel)
                {
                    var job      = processedJob as ImageJobModel;
                    var id       = job.FilmingIdentifier;
                    var batchJob =
                        ProcessedJobQueue.Find(j => j is BatchJob && (j as BatchJob).Id == id &&
                                               !(j as BatchJob).IsComplete)  as BatchJob;
                    if (batchJob != null)
                    {
                        batchJob.Add(job);
                    }
                    else
                    {
                        ProcessedJobQueue.Add(job);
                    }
                }
                else
                {
                    ProcessedJobQueue.Add(processedJob);
                }

                Logger.LogInfo("Add Processed Job!");
            }

            WakeUpWorkThread();
        }
Beispiel #4
0
        public void PushProcessedJob(object processedJob)
        {
            lock (_processedJobLock)
            {
                ProcessedJobQueue.Enqueue(processedJob);

                Logger.LogInfo("Add Processed Job!");
            }

            _processedManualResetEvent.Set();
        }
Beispiel #5
0
        public object PeekProcessedJob()
        {
            lock (_processedJobLock)
            {
                var task = ProcessedJobQueue[0] as ACommandHandler;
                if (task == null)
                {
                    ProcessedJobQueue.RemoveAt(0);
                    return(null);
                }

                var job = task.CurrentJob();

                if (task.IsReady)
                {
                    ProcessedJobQueue.RemoveAt(0);
                }

                return(job);
            }
        }