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; }
private void TryDispatchBatches() { if (TaskBacklog.IsEmpty && BatchDispatcher.HasTasks) { BatchDispatcher.Dispatch(Register); } void Register(IExecutionTaskDefinition taskDefinition) { TaskBacklog.Register(taskDefinition.Create(_taskContext)); } }