在C#4.0中阻止收集的性能

时间:2012-03-13 05:57:34

标签: c# blockingcollection

阻止收藏比普通队列更多堆积。在以下场景中,

  1. 我有一个专门的线程作为消费者。
  2. 三个或更多专用线程作为制作人。

    我已使用Normal Queue(Monitor.Enter ...)以及Blocking Collection进行了检查。

  3. 结果:

    Both Queues are getting pile up (Obviously , Consumers < Producers)
    

    正常队列会在某个时间点自动清除。 20000或30000后不继续增加。  但Blocking Collection继续增加超过数十万,显然我们没有明确的选择,同时我不想限制制作人

    任何人都可以轻装上阵。

1 个答案:

答案 0 :(得分:1)

这是我一直在做的建议 - 尝试ZeroMQ。生产者/消费者模式得到很好的支持(使用PUSH和PULL套接字),而且速度非常快。由于您使用相同的过程,因此无需担心消息丢失。