Ejemplo n.º 1
0
        public void Add(AbstractJob job)
        {
            if(_jobs.ContainsKey(job.Id))
                throw new ApplicationException("This job id already exists!");

            _jobs.Add(job.Id, job);
        }
Ejemplo n.º 2
0
        public void RegisterAndWait(AbstractJob job)
        {
            List<AbstractJob> jobs;
            lock (groups)
            {
                if (!groups.TryGetValue(job.NoParallelGroup.Name, out jobs))
                {
                    jobs = new List<AbstractJob>();
                    groups.Add(job.NoParallelGroup.Name, jobs);
                }
            }

            lock (jobs)
            {
                int i = 1;
                for (; i < jobs.Count; i++)
                {
                    if (job.NoParallelGroup.Prioriry > jobs[i].NoParallelGroup.Prioriry)
                    {
                        break;
                    }
                }
                if (i >= jobs.Count)
                    jobs.Add(job);
                else
                    jobs.Insert(i, job);

                while (jobs[0] != job)
                    Monitor.Wait(jobs);
            }
        }
Ejemplo n.º 3
0
        public void Unregister(AbstractJob job)
        {
            List<AbstractJob> jobs;
            lock (groups)
            {
                groups.TryGetValue(job.NoParallelGroup.Name, out jobs);
            }

            lock (jobs)
            {
                jobs.Remove(job);
                Monitor.PulseAll(jobs);
            }
        }
Ejemplo n.º 4
0
 public void Update(AbstractJob job)
 {
 }
Ejemplo n.º 5
0
 public void Remove(AbstractJob job)
 {
 }