示例#1
0
        public TaskList(TaskFactory taskFactory)
        {
            pool             = null;
            scheduler        = null;
            this.taskFactory = taskFactory;

            cancellationTokenSource = new CancellationTokenSource();
            tasks = new List <Task>();
        }
示例#2
0
        public TaskList(int maxDegreeOfParallelism)
        {
            pool        = new DedicatedThreadPool(new DedicatedThreadPoolSettings(maxDegreeOfParallelism));
            scheduler   = new DedicatedThreadPoolTaskScheduler(pool);
            taskFactory = new TaskFactory(scheduler);

            cancellationTokenSource = new CancellationTokenSource();
            tasks = new List <Task>();
        }
示例#3
0
        public ActionDispatcher(IEnumerable <IActionPipe> actionPipes, int numberOfThreadPoolThreads = 8)
        {
            pipes           = actionPipes.ToArray();
            resourceManager = new ResourceManager();

            cancellationTokenSource = new CancellationTokenSource();
            tasks = new Dictionary <IActionPipe, Task>(pipes.Length);

            pool        = new DedicatedThreadPool(new DedicatedThreadPoolSettings(numberOfThreadPoolThreads));
            Scheduler   = new DedicatedThreadPoolTaskScheduler(pool);
            TaskFactory = new TaskFactory(cancellationTokenSource.Token, TaskCreationOptions.None, TaskContinuationOptions.None, Scheduler);

            SetUpProcessingDefaultEvents();

            state = DispatcherState.NotStarted;
        }