Добавление в BlockingCollection после CompleteAdding вызывается

Я использую проблему производитель-потребитель и имею BlockingCollection, что я создаю данные и потребляю дату из него. Я вызываю метод для получения данных и устанавливаю blockingcollection в CompleteAdding, чтобы потребитель потреблял все данные из BC (blockingcollection), и после некоторой обработки приложение хочет добавить некоторые другие данные в BC, но не может, потому что оно установлено в CompleteAdding, как я могу установить CompleteAdding в false или как я могу потреблять все данные из BC до н. э., не дожидаясь ComleteAdding?

спасибо.

1 ответов


вы не можете - смысл вызова CompleteAdding сказать: "в эту коллекцию больше никогда не будут добавлены данные. Когда он пуст, вы знаете, вы сделали."То, что вы просите, немного похоже на то, как сказать:" после того, как я закрыл сетевое соединение, как я могу его снова открыть, чтобы я мог написать больше данных?"

тот факт, что вы хочу to предлагает вам переосмыслить свой дизайн. Возможно, вам следует создать новый BlockingCollection в этот момент вместо этого? Или, возможно, Вам не действительно хочу называть CompleteAdding начать?