我在C#3.0和Monitor.Enter中使用Generic.Queue,等待,在使用队列之前退出等待(等待元素入队)。现在我转到C#4。
任何人都可以建议我哪一个是快速的,尤其是避免锁定..
BlockingCollection vs concurrentQueue或其他任何东西......
请注意。我不想限制我的制片人
提前致谢..
答案 0 :(得分:109)
BlockingCollection
和ConcurrentQueue
就是出于这个原因。我怀疑你会发现更好,或更简单的使用。并行扩展团队知道他们的东西:)
只是快速检查版本 - 你肯定使用的是.NET 4,而不仅仅是C#4? (例如,您可能正在使用Visual Studio 2010,因此使用C#4,但仍然以.NET 3.5为目标,在这种情况下,您无法使用Parallel Extensions。)
您可能还想开始研究Task-Based Asynchronous Pattern,TPL Dataflow和async/await features of C# 5 ......显然您还不能使用它们,但知道什么是不会有什么害处来了。