Exemplo n.º 1
0
        public void Update()
        {
            int numWorkingTasks = workingTasks.Count;

            for (int i = 0; i < numWorkingTasks; ++i)
            {
                ABakingTask task = workingTasks[i];
                if (task.IsComplete)
                {
                    completeTasks.Add(task);
                    workingTasks.RemoveAt(i);
                    --i;
                    --numWorkingTasks;
                }
            }

            if (workingTasks.Count < concurrentTasks && idleTasks.Count > 0)
            {
                ABakingTask idleTask = idleTasks[idleTasks.Count - 1];
                idleTasks.RemoveAt(idleTasks.Count - 1);
                workingTasks.Add(idleTask);
                idleTask.Start();
            }
        }