[英]C#, ConcurrentQueue size limit and time frame
我正在尋找一種方法:1。從ConcurentQueue讀取限制為某種尺寸的消息。 2.在一個時間范圍內不再讀取X消息。 我希望在2次擊中之一時停止從Q讀取,直到其他代碼完成並再次執行相同的操作。
我看到了Queue溢出的不同實現,在這里固定大小的隊列,它會自動將舊值出現在新的enques上,但無法弄清楚如何正確組合它們。
public class FixedSizedQueue<T>
public int Size { get; private set; }
public FixedSizedQueue(int size)
{
Size = size;
}
public void Enqueue(T obj)
{
queue.Enqueue(obj);
while (queue.Count > Size)
{
T outObj;
queue.TryDequeue(out outObj);
}
}
}
嘗試使用BlockingCollection
而不是ConcurrentQueue
當您嘗試在集合中添加另一個元素時,如果已滿,則等待直到獲取元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.