从不断增长的ConcurrentQueue中取出一个未知值

本文关键字:一个 未知 不断增长 ConcurrentQueue | 更新日期: 2023-09-27 18:16:34

我已经声明了一个ConcurrentQueue,并将在while循环中对来自外部源的所有数据点进行排队。当队列大小超过一定数量(比如100)时,是否有办法删除第一个元素?谢谢!

从不断增长的ConcurrentQueue中取出一个未知值

您可能想要的不是Queue,而是Circular/Ring Buffer。

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

对于并发集合,你能做的最好的事情是BlockingCollection,它等待空闲空间或可用元素,阻塞读或写。