当多个线程添加数据时,可以确保BlockingCollection队列的数据顺序吗?

时间:2018-07-26 06:08:06

标签: c# .net multithreading producer-consumer blockingcollection

我正在使用BlockingCollection类实现的队列来实现生产者-消费者模型队列。

我有多个线程以指定的顺序添加元素(仅适用于每个线程),还有一个线程将元素从中取出。

我不在乎在不同线程之间添加元素的顺序,但是我希望每个线程添加的元素都按照添加顺序排列。

BlockingCollection类可以保证吗?我已经用谷歌搜索了,但是找不到我问题的明确答案。

1 个答案:

答案 0 :(得分:1)

ConcurrentQueue<T>BlockingCollection<T>后面的默认集合指出它是:

  

线程安全的先进先出(FIFO)集合。

无论是在类文档本身还是在EnqueueTryDequeue的文档中,他们都不需要强调任何其他线程问题。

我希望有更强大的文档,我想这就是您要寻找的东西,但是我能提供的最好的是,它说这是FIFO,我必须相信它是。