Example #1
0
        public Job Queue(Action<JobStatus> action)
        {
            var job = new Job { Id = Guid.NewGuid(), Started = false, Status = new JobStatus() };

            var guard = new object();

            ThreadPool.QueueUserWorkItem(o =>
                                             {
                                                 lock (guard)
                                                     job.Started = true;

                                                 action(job.Status);

                                                 lock (guard)
                                                 {
                                                     job.Status.SetProgess(1, "Done");
                                                     job.Complete = true;
                                                 }

                                             });

            _jobs[job.Id] = job;

            return job;
        }