Ejemplo n.º 1
0
        /// <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);
            }
        }