【发布时间】:2011-04-01 16:56:42
【问题描述】:
我有一个具有“高优先级”和“低优先级”队列的 C# 4.0 应用程序:
BlockingCollection highPriority = new BlockingCollection(1000); BlockingCollection lowPriority = new BlockingCollection(1000);
highPriority 中产生的任何数据都应该在 lowPriority 中产生的任何数据之前被使用。这里的转折是数据可以随时生成到两个队列中的任何一个。因此,在我使用 highPriority 中的所有数据之后,我将使用可能处于 lowPriority 的任何数据。如果在我消费lowPriority数据的时候highPriority产生了新数据,我想在lowPriority消费完当前项,然后切换回highPriority处理数据。
谁能建议一种算法来帮助解决这个问题?伪代码很好。非常感谢。
【问题讨论】:
标签: .net algorithm queue producer-consumer