Does BlockingCollection<T> guarantee removal order?

Viewed 9078

I have a bounded blocking queue in an application that was written several years ago. Let's just say that the implementation is less than stellar, but it's worked. However, it has some performance problems. It looks like the .NET 4.0 BlockingCollection<T> is the right replacement, but I need to make sure that it is actually a queue. That is, is it guaranteed to be strictly FIFO if used in a single-producer, single-consumer fashion?

The documentation doesn't specifically say. The BlockingCollection topic does say (in the Remarks):

BlockingCollection<T> is similar to a traditional blocking queue data structure, except that the underlying data storage mechanism is abstracted away as an IProducerConsumerCollection<T>.

But nothing specifically says that things will be removed in the same order they're added.

Anybody know for sure?

2 Answers
Related