通用.Net生产者/消费者

Joe*_*orn 8 .net c# multithreading producer-consumer

我正在考虑在C#中实现通用的生产者/消费者对+处理队列的想法.我们的想法是你可以创建实现适当的IProducer和IConsumer接口(提供默认实现)的对象,它们将主要由委托组成,将它们传递给QueueProcessor类实例,告诉它你想要多少个消费者,然后去.

但我对自己说,"自我,这肯定已经做过了."

因此,没有人知道的,一般实施在C#中的生产者/消费者模式(VB.Net是好的,太)?我正在寻找的基本要求:

  • 对生成和使用的类型(输入,排队任务和输出类型或其任何组合)使用泛型
  • 允许您指定将为队列工作的消费者数量
  • 允许您将多个队列链接或链接到管道中(对于多个消费者来说很棘手,我知道)
  • 允许您实施自己的生产者和消费者
  • 允许你将任何IEnumerable转换为生产者(好吧,如果我必须自己实现,只要它可能)
  • 基于委托(您可以使用lambda语法为基本消费者或生产者工作处理单个项目)

或者如果没有,哪些陷阱阻止了它,你对如何实现它有任何想法吗?

rip*_*234 5

Microsoft CCR包含您需要的大部分内容.

以下是一些代码示例和使用说明.