需要与java LinkedBlockingQueue
类似的东西。
感兴趣的方法:messageQueue.poll(120000, TimeUnit.MILLISECONDS);
意思是..获取项目..如果在X单位时间内你仍然没有项目...返回null
+ i必须 FIFO
经过一些谷歌搜索(但尚未测试):我发现ConcurrentQueue(有FIFO行为),BlockingCollection(FiFO或没有FIFO ??)
答案 0 :(得分:10)
BlockingCollection
可以与任意数量的不同类型的集合一起使用。如果您不手动传入特定类型的并发集合,它将使用ConcurrentQueue
,这意味着它将完全按照您的意愿执行。如果需要,可以使用并发堆栈类型或并发优先级队列,这就是它使用阻塞集合等通用名称而不是BlockingConcurrentQueue的原因。
如果您不想接受我的话,BlockingCollection
的MSDN页面上会列出所有这些内容。