public void AddTask(ICompositeTask task) { lock ( _mutex ) { _tasks.AddLast(task); Wakeup(); } }
/// <summary> /// Submits a composite task of type T to the desired consumer /// </summary> /// <typeparam name="T">IDataSet type</typeparam> /// <param name="task">the task to consume</param> public void SubmitCompositeTask <T>(ICompositeTask <T> task) where T : IDataSet { task.SetTaskReporter(taskReporter); if (task.GetTaskType() == CompositeTaskType.ASYNCHRONOUS) { if (!(task is ITaskObserver)) { Task.Factory.StartNew(() => { task.Run(); }); } } else if (task.GetTaskType() == CompositeTaskType.SYNCHRONOUS) { syncTaskQueue.Submit(task); } }
public void SubmitCompositeTask <T>(ICompositeTask <T> compositeTask) where T : IDataSet { numberOfTasks++; this.compositeTaskController.SubmitCompositeTask(compositeTask); }
public TaskPoolBuilder SubmitCompositeTask <T>(ICompositeTask <T> compositeTask) where T : IDataSet { taskPool.SubmitCompositeTask(compositeTask); this.currentTask = compositeTask; return(this); }
/// <summary> /// Submits a composite task to be processed in the queue /// </summary> /// <typeparam name="T">IDataSet type</typeparam> /// <param name="task">The composite task to execute</param> public void Submit <T>(ICompositeTask <T> task) where T : IDataSet { taskQueue.Add(task); }