public AccumulatingBufferBlock(IAccumulator <T> accumulator, ILogger <AccumulatingBufferBlock <T> > logger) { Accumulator = accumulator; Logger = logger; AccumBlock = new ActionBlock <IEnumerable <T> >(itemsEnumerable => { var items = itemsEnumerable.ToArray(); lock (AccumulatorLock) { Logger.LogTrace($"AccumBlock adding {items.Length} items."); Accumulator.AddRange(items); Logger.LogTrace("AccumBlock adding done."); } }); }