我正在寻找可以从双方访问的并发集合。我要实现以下目标:

  • 一些生产者添加项目
  • 客户端应能够显示最后n个产生的项目
  • 集合只能包含最近x个小时内产生的元素

  • 因此,我需要访问列表的顶部(FIFO)以显示最后n个项目,但是我还需要访问列表的末尾(LIFO)以连续修剪超过x小时的元素。

    最佳答案



    那不是要删除项目。我想您想让他们在显示后呆在那里。
    因此,您实际上并不需要LIFO部分。

    当项目数量不太大时,可以使用ConcurrentQueue和ToArray()获取快照(并且仅使用前n个项目)。

    10-08 13:34