所有C#[1] [2]似乎有隐约类似于接口:阻止具有多个元素的集合?对于生产者 - 消费者集合的实现的
private Queue<T> items;
public void Produce(T item)
public T Consume()
在任何实现方式中有像下面?
private Queue<T> items;
public void Produce(T[] item)
public T[] Consume(int count)
希望是这样可以让我一次生产/消费不同数量的物品,而不需要过多的每件物品锁定。这似乎是生产/消耗大量物品的必要条件,但我没有找到任何实现的运气。
[2] Creating a blocking Queue<T> in .NET?
我做了一个错误的假设,即BlockingCollection'对于很多项目来说会很慢。经过测试,它可以在高吞吐量下正常工作。 –