コード例 #1
0
 public ExecutionContext(
     IExecutionTaskContext taskContext,
     ObjectPool <ResolverTask> resolverTaskPool)
 {
     _taskContext                       = taskContext;
     _taskStatistics                    = new TaskStatistics();
     _taskBacklog                       = new TaskBacklog(_taskStatistics, resolverTaskPool);
     _deferredTaskBacklog               = new DeferredTaskBacklog();
     _taskPool                          = resolverTaskPool;
     _taskStatistics.StateChanged      += TaskStatisticsEventHandler;
     _taskStatistics.AllTasksCompleted += OnCompleted;
 }
コード例 #2
0
        private void TryDispatchBatches()
        {
            if (TaskBacklog.IsEmpty && BatchDispatcher.HasTasks)
            {
                BatchDispatcher.Dispatch(Register);
            }

            void Register(IExecutionTaskDefinition taskDefinition)
            {
                TaskBacklog.Register(taskDefinition.Create(_taskContext));
            }
        }