对于单生产者,单消费者应该使用BlockingCollection还是ConcurrentQueue?
顾虑:
http://msdn.microsoft.com/en-us/library/system.collections.concurrent.aspx
最佳答案
您可能无法使用其中任何一个。尽管就像您说的那样,如果使用ConcurrentQueue
,那么您将不得不在队列为空时执行旋转等待。如果您期望生产者和消费者之间的时差很短,那可能还不错。最后,我认为您会发现BlockingCollection
更适合您的情况。毕竟,它是生产者-消费者模式选择的数据结构。您可以通过两种不同的方法来解决不确定的等待问题。
null
值在这里可以很好地工作。 CancellationToken
机制来取消阻止Take
方法。 关于multithreading - 对于单生产者,单消费者应该使用BlockingCollection还是ConcurrentQueue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916607/