internal ScheduledProducer(TimeSpan timespan, Func <CancellationToken, IEnumerable <IWorkItem> > startupWorkFactoryMethod, Func <CancellationToken, IEnumerable <IWorkItem> > workFactoryMethod, IStartupBarrier startupBarrier = null) : base(startupBarrier) { _timespan = timespan; _startupWorkFactoryMethod = startupWorkFactoryMethod; _workItemFactoryMethod = workFactoryMethod ?? throw new ArgumentNullException(nameof(workFactoryMethod)); }
internal AbstractProducer(IThreadWrapper worker, IStartupBarrier startupBarrier = null) { _worker = worker; _worker.Setup(Loop, cancellationToken => { Startup(AddWork, cancellationToken); startupBarrier?.Wait(cancellationToken); }); }
public WorkerPoolBuilder(IStartupBarrier startupBarrier = null) { _barrier = startupBarrier; _workerPool = new WorkerPool(); _workQueue = new BlockingCollection <IWorkItem>(); }
internal StartupWorkBatch(IWorkBatch workBatch, IStartupBarrier barrier) { _workBatch = workBatch; _barrier = barrier; }
public WorkBatchFactory(IStartupBarrier startupBarrier = null) { _startupBarrier = startupBarrier; }
protected AbstractProducer(IStartupBarrier startupBarrier = null) : this(new ThreadWrapper(), startupBarrier) { }