首页 文章

通用.Net 生产环境 者/消费者

提问于
浏览
8

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

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

那么有没有人知道 good ,C#中 生产环境 者/消费者模式的通用实现(VB.Net也可以)?我正在寻找的基本要求:

  • 对生成和使用的类型(输入,排队任务和输出类型或其任何组合)使用泛型

  • 允许您指定将为队列工作的消费者数量

  • 允许您将多个队列链接或链接到管道中(对于多个消费者来说很棘手,我知道)

  • 允许您实施自己的 生产环境 者和消费者

  • 允许你将任何IEnumerable转换为 生产环境 者(好吧,如果我必须自己实现,只要它可能)

  • 基于委托(您可以使用lambda语法为基本消费者或 生产环境 者工作处理单个项目)

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

3 回答

  • 2

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

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

  • 0

    Marc Gravell在this answer写了一个很好的阻塞队列示例 .

  • 5

    你看过MiscUtil吗?

相关问题