我正在考虑在C#中实现一个通用的生产者/消费者对+处理队列,以供娱乐。这个想法是你可以创建实现适当的IProducer和IConsumer接口的对象(提供默认实现),这些接口主要由委托组成,将它们传递给
但我对自己说:“自己啊,肯定有人做过这个了。”
那么,有没有人知道在C#(VB.Net也可以)中有一个好的、通用的生产者/消费者模式的实现呢?我正在寻找的基本要求包括:
QueueProcessor
类实例,告诉它你想要多少个消费者,然后开始运行。但我对自己说:“自己啊,肯定有人做过这个了。”
那么,有没有人知道在C#(VB.Net也可以)中有一个好的、通用的生产者/消费者模式的实现呢?我正在寻找的基本要求包括:
- 使用泛型来生产和消费类型(输入、排队任务和输出类型或任何组合)
- 允许您指定多少个消费者会处理队列
- 允许您将多个队列连接或链接成一个管道(多个消费者比较棘手)
- 允许您实现自己的生产者和消费者
- 允许您将任何IEnumerable转换为生产者(如果我必须自己实现,那也可以)
- 基于委托(可以使用lambda语法来处理单个项目的基本消费者或生产者工作)