public ChannelBlockEngine( Channel <TIn> channel, Func <TIn, Task <TOut> > workBodyAsync, int maxDegreeOfParallelism, bool ensureOrdered, TaskScheduler taskScheduler = null, CancellationToken token = default) : this(workBodyAsync, maxDegreeOfParallelism, ensureOrdered, taskScheduler) { _channelBlock = new ChannelBlock <TIn>(channel); _channelBlock.LinkTo(_workBlock); _channelBlock.StartReadChannel(token); }
public ChannelBlockEngine( Func <TIn, Task <TOut> > workBodyAsync, int maxDegreeOfParallelism, bool ensureOrdered, int boundedCapacity = 1000, TaskScheduler taskScheduler = null, CancellationToken token = default) : this(workBodyAsync, maxDegreeOfParallelism, ensureOrdered, taskScheduler) { if (boundedCapacity > 0) { _channelBlock = new ChannelBlock <TIn>(new BoundedChannelOptions(boundedCapacity)); } else { _channelBlock = new ChannelBlock <TIn>(new UnboundedChannelOptions()); } _channelBlock.LinkTo(_workBlock); _channelBlock.StartReadChannel(token); }