/// <summary> /// Start the job, block until its done. /// </summary> public virtual void Process() { Object task; TaskGroup group = EngineConcurrency.Instance.CreateTaskGroup(); this.totalTasks = LoadWorkload(); int currentTask = 0; while ((task = RequestNextTask()) != null) { currentTask++; JobUnitContext context = new JobUnitContext(); context.JobUnit = task; context.Owner = this; context.TaskNumber = currentTask; JobUnitWorker worker = new JobUnitWorker(context); EngineConcurrency.Instance.ProcessTask(worker, group); } group.WaitForComplete(); }
/// <summary> /// Start the job, block until its done. /// </summary> public virtual void Process() { Object task; TaskGroup group = EngineConcurrency.Instance.CreateTaskGroup(); this.totalTasks = LoadWorkload(); int currentTask = 0; while ((task = RequestNextTask()) != null) { currentTask++; JobUnitContext context = new JobUnitContext(); context.JobUnit = task; context.Owner = this; context.TaskNumber = currentTask; JobUnitWorker worker = new JobUnitWorker(context); EngineConcurrency.Instance.ProcessTask(worker, group); } group.WaitForComplete(); }