Ejemplo n.º 1
0
        private void OnTaskComplete(UpdaterContext context, ITask task)
        {
            var poppedTask = TaskStack.Dequeue();

            TaskComplete(context, task);
            LaunchNextTask(context);
        }
Ejemplo n.º 2
0
        private void OnTaskFailed(UpdaterContext context, ITask updateTask, Exception exception)
        {
            var poppedTask = TaskStack.Dequeue();

            TaskFailed(context, updateTask, exception);
            if (updateTask.StopOnFail)
            {
                TaskStack.Clear();
            }
            LaunchNextTask(context);
        }
Ejemplo n.º 3
0
        protected internal void LaunchNextTask(UpdaterContext context)
        {
            if (TaskStack.Count == 0)
            {
                new Action(() => OnTaskRunnerComplete(context)).BeginInvoke(null, null);
                return;
            }
            var thisTask = TaskStack.Peek();

            try
            {
                thisTask.ExecuteTask(context);
            }
            catch (Exception e)
            {
                context.FireTaskFailed(thisTask, e);
                return;
            }
            context.FireTaskComplete(thisTask);
        }
Ejemplo n.º 4
0
 protected internal void AddTask(ITask task)
 {
     TaskStack.Enqueue(task);
 }