Exemple #1
0
        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.");
                }
            });
        }