/// <summary> /// Associates a task with this controller and schedules it for execution. /// </summary> /// <param name="task"></param> public void AddTask(AppTask task) { RegisterTask(task); switch (task.Status) { case AppTaskStatus.Preparing: _pendingTasks.Enqueue(task); break; case AppTaskStatus.Setup: // Shouldn't really ever happen, but just in case, set it to waiting here task.SetWaiting(); break; case AppTaskStatus.Waiting: _waitingTasks.Enqueue(task); break; case AppTaskStatus.Running: _executingTasks.Add(task); break; case AppTaskStatus.Complete: case AppTaskStatus.Error: // Finished tasks, no need to do anything more break; default: throw new NotImplementedException("Unknown enum value: " + task.Status); } }
void task_TaskSetup(AppTask task, EventArgs e) { task.SetWaiting(); }