我需要单生产者、单消费者的FIFO查询,因为:
这听起来很简单,我可能可以使用通用的
- 我需要按接收顺序处理信息。
- 我需要异步进行处理,因为调用者不应该在我处理消息时等待。
- 下一条消息的处理应该仅在前一条消息的处理完成后开始。有时,“接收”消息的频率高于“处理”消息的频率。但是平均而言,我应该能够处理所有消息,只是有时候我必须“排队”它们。
这听起来很简单,我可能可以使用通用的
Queue
来实现,但我想使用BlockingCollection
,因为我不想写任何涉及ManualResetEvent
等内容的代码。
BlockingCollection
是否适合我的任务?您还能否提供其他建议?
BlockingCollection
的默认FIFO实现不会被更改,但这是另一个问题... - Oleg VazhnevIProducerConsumerCollection
接口,我相信您应该不会有问题。BCL类的实现不会在这种原则性的程度上更改FIFO顺序等内容。 - sllproducerWorker
任务会结束,但consumerWorker
永远不会结束。这应该考虑在内吗? - Rich Shealer