Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
 void task_TaskSetup(AppTask task, EventArgs e)
 {
     task.SetWaiting();
 }