C#:需要一个类似于Java的LinkedBlockingQueue的阻塞FIFO队列

pul*_*988 5 c# queue multithreading fifo blocking

需要类似java的东西LinkedBlockingQueue.

感兴趣的方法:messageQueue.poll(120000, TimeUnit.MILLISECONDS); 意思是..获取项目..如果在X单位时间你仍然没有项目...返回null

那+我必须是FIFO

一些谷歌搜索后(但还没有测试):我发现ConcurrentQueue(有FIFO行为),BlockingCollection(FiFO或没有FIFO?)

Ser*_*rvy 10

BlockingCollection可以与任意数量的不同类型的集合一起使用.如果您不手动传入特定类型的并发集合,它将使用a ConcurrentQueue,这意味着它将完全按照您的意愿执行.如果需要,可以使用并发堆栈类型或并发优先级队列,这就是它使用阻塞集合等通用名称而不是BlockingConcurrentQueue的原因.

所有这些都列在MSDN页面上,BlockingCollection如果你不想接受我的话.

  • +1 BlockingCollection是一个很好的FIFO PC队列 (3认同)