public void CompleteTask(TaskItem task, TaskResult result) { using (Trace.Log()) { if (taskProvider.CompleteTask(task, result)) { NotifyTasksAvailable(); } else if (taskProvider.TaskCount == 0) { Completed?.Invoke(); } Interlocked.Decrement(ref stats.running); Interlocked.Increment(ref stats.completed); if (result.success) { Interlocked.Increment(ref stats.succeeded); } else { Interlocked.Increment(ref stats.failed); } Dispatcher.UpdateJob(this); } }
private ExecutionResult ReportSuccess(ITaskProvider taskProvider, Task task) { taskProvider.CompleteTask(task.Id); return ExecutionResult.Success(task.Id); }
public void CompleteTask(int taskId) { _taskProvider.CompleteTask(taskId); }