11

我正在使用 Producer-Consumer 模式,我使用了一种BlockingCollection产生数据并从中消费数据的模式。我调用一个方法来生成数据,然后将 设置为BlockingCollectionCompleteAdding以便消费者使用BlockingCollection. 经过一些处理后,应用程序想要向 中添加一些其他数据BlockingCollection,但它不能因为它设置为CompleteAdding,我该如何设置CompleteAdding为 false,或者如何使用来自 的所有数据BlockingCollection,而不是等待ComleteAdding

4

1 回答 1

21

你不能 - 调用的全部意义CompleteAdding在于说,“永远不会有任何数据添加到这个集合中。一旦它是空的,你就知道你已经完成了。” 您的要求有点像说:“在我关闭网络连接后,如何重新打开它以便写入更多数据?”

您想要建议的事实表明您应该重新考虑您的设计。也许您现在应该创建一个新BlockingCollection的?或者也许你真的不想打电话CompleteAdding开始?

于 2012-08-30T10:58:10.227 回答