private void AddTaskToTaskGroup(TaskGroup taskGroup, ITask task, TaskExecutionMode taskExecutionMode) { CheckThatTaskWasNotExecutedAlready(task); if (taskGroup == null) { taskGroup = new TaskGroup() { GroupId = Guid.NewGuid().ToString(), }; taskGroup.Tasks.Add((task, taskExecutionMode)); TasksGroups.Add(taskGroup); } else { var existingGroup = TasksGroups.FirstOrDefault(x => x.GroupId == taskGroup.GroupId); if (existingGroup == null) { taskGroup.Tasks.Add((task, taskExecutionMode)); TasksGroups.Add(taskGroup); } else { taskGroup.Tasks.Add((task, taskExecutionMode)); } } }
public ITargetInternal AddTask(TaskGroup taskGroup, params ITask[] tasks) { foreach (var task in tasks) { AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Synchronous); } return(this); }
public ITargetInternal AddTaskAsync(TaskGroup taskGroup, params ITask[] tasks) { foreach (var task in tasks) { AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Parallel); } return(this); }
public ITargetInternal Do <T, T2>(Action <ITaskContextInternal, T, T2> targetAction, T param, T2 param2, Action <DoTask3 <T, T2> > taskAction = null, TaskGroup taskGroup = null) { var task = new DoTask3 <T, T2>(targetAction, param, param2); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Synchronous); return(this); }
public ITargetInternal Do <T1, T2, T3, T4, T5>(Action <ITaskContextInternal, T1, T2, T3, T4, T5> targetAction, T1 param, T2 param2, T3 param3, T4 param4, T5 param5, Action <DoTask6 <T1, T2, T3, T4, T5> > taskAction = null, TaskGroup taskGroup = null) { var task = new DoTask6 <T1, T2, T3, T4, T5>(targetAction, param, param2, param3, param4, param5); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Synchronous); return(this); }
public ITargetInternal Do(Action <ITaskContextInternal> targetAction, Action <DoTask> taskAction = null, TaskGroup taskGroup = null) { var task = new DoTask(targetAction); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Synchronous); return(this); }
public ITargetInternal DoAsync <T1, T2, T3, T4>(Func <ITaskContextInternal, T1, T2, T3, T4, Task> targetAction, T1 param, T2 param2, T3 param3, T4 param4, Action <DoTaskAsync5 <T1, T2, T3, T4> > taskAction = null, TaskGroup taskGroup = null) { var task = new DoTaskAsync5 <T1, T2, T3, T4>(targetAction, param, param2, param3, param4); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Parallel); return(this); }
public ITargetInternal DoAsync <T, T2>(Func <ITaskContextInternal, T, T2, Task> targetAction, T param, T2 param2, Action <DoTaskAsync3 <T, T2> > taskAction = null, TaskGroup taskGroup = null) { var task = new DoTaskAsync3 <T, T2>(targetAction, param, param2); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Parallel); return(this); }
public ITargetInternal DoAsync(Func <ITaskContextInternal, Task> targetAction, Action <DoTaskAsync> taskAction = null, TaskGroup taskGroup = null) { var task = new DoTaskAsync(targetAction); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Parallel); return(this); }
public ITargetInternal DoAsync <T>(Action <ITaskContextInternal, T> targetAction, T param, Action <DoTask2 <T> > taskAction = null, TaskGroup taskGroup = null) { var task = new DoTask2 <T>(targetAction, param); taskAction?.Invoke(task); AddTaskToTaskGroup(taskGroup, task, TaskExecutionMode.Parallel); return(this); }