Как использовать BlockingCollection <T> в пакетном режиме

Мы придумали некоторый код, чтобы потреблять все элементы ожидания из очереди. Вместо того, чтобы обрабатывать элементы 1 на 1, имеет смысл обрабатывать все ожидающие элементы как набор.

мы объявили мою очередь такой.

private BlockingCollection items = 
    new BlockingCollection(new ConcurrentQueue);

Затем, на потребительской ветке, я планирую читать такие партии, как эта,

Item nextItem;
while (this.items.TryTake(out nextItem, -1))
{
    var workToDo = new List();
    workToDo.Add(nextItem);

    while(this.items.TryTake(out nextItem))
    {
        workToDo.Add(nextItem);
    }

    // process workToDo, then go back to the queue.
}

Этот подход лишен полезностиGetConsumingEnumerable и я могу'не интересно, если яМы пропустили лучший способ, или если мой подход неверен.

Есть ли лучший способ потреблятьBlockingCollection партиями?

Ответы на вопрос(1)

Ваш ответ на вопрос