尝试从一个不断增长的ConcurrentQueue

时间:2015-10-07 17:44:12

标签: c#

我已声明ConcurrentQueue并将在while循环中将所有数据点排入外部源。当队列大小超过一定数量时,有没有办法删除第一个元素,比如100? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可能想要的不是队列而是循环/环形缓冲区。

我不知道内置的.NET / C#实现,但基本的想法是拥有一个固定大小的存储,其中包含用于添加和删除元素的单独索引和信号量。

使用Concurrent Collections,你可以做的最好的是BlockingCollection,它等待可用空间或可用元素,阻止读者或作者。