快速和最佳生产者/消费者队列技术BlockingCollection与并发队列

时间:2011-02-15 07:42:24

标签: concurrency c#-3.0 consumer producer

我在C#3.0和Monitor.Enter中使用Generic.Queue,等待,在使用队列之前退出等待(等待元素入队)。现在我转到C#4。

任何人都可以建议我哪一个是快速的,尤其是避免锁定..

BlockingCollection vs concurrentQueue或其他任何东西......

请注意。我不想限制我的制片人

提前致谢..

1 个答案:

答案 0 :(得分:109)

BlockingCollectionConcurrentQueue就是出于这个原因。我怀疑你会发现更好,或更简单的使用。并行扩展团队知道他们的东西:)

只是快速检查版本 - 你肯定使用的是.NET 4,而不仅仅是C#4? (例如,您可能正在使用Visual Studio 2010,因此使用C#4,但仍然以.NET 3.5为目标,在这种情况下,您无法使用Parallel Extensions。)

您可能还想开始研究Task-Based Asynchronous PatternTPL Dataflowasync/await features of C# 5 ......显然您还不能使用它们,但知道什么是不会有什么害处来了。