【发布时间】:2016-02-06 16:10:59
【问题描述】:
我相信一个非常常见的场景是有一个应该一次处理 N 个项目的队列。
例如..如果我们有23 items 并且应该一次处理10,它会像:
Process batch of 10
Process batch of 10
Process batch of 3
我可以通过多种方式解决这个问题。我的问题是:.NET 框架是否提供了专门为解决这种情况而设计的任何类? Queue 类将是完美的,但它不允许一次出列多个项目。
【问题讨论】:
-
你不能循环出列 10 个项目然后处理它们吗?我是否从您的问题中遗漏了一些排除这种方法的内容?
-
你为什么不把 10 个完整的批次排入队列?
-
您可以构建一个扩展方法,以块的形式出列并返回出列对象的
IEnumerable -
这些可以乱序排列还是混合排列?一些排队系统有对话(Service Broker)的概念,其中消息可以逻辑地组合在一起作为一个对话,这样它们就可以由单个阅读器处理,而其他消息可以由它们各自的阅读器处理。
标签: c# .net linq collections