44

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

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

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

笔记。我不想限制我的制作人

提前致谢..

4

1 回答 1

116

BlockingCollection正是ConcurrentQueue出于这个原因。我怀疑您会发现更好或更易于使用的东西。并行扩展团队知道他们的东西 :)

不过,只是快速检查一下版本 - 您肯定使用的是 .NET 4,而不仅仅是 C# 4?(例如,您可能正在使用 Visual Studio 2010 和 C# 4,但仍以 .NET 3.5 为目标,在这种情况下,您无法使用并行扩展。)

您可能还想开始研究基于任务的异步模式TPL 数据流C# 5 的 async/await 特性……显然您还不能使用它们,但知道会发生什么并没有什么坏处。

于 2011-02-15T07:57:43.533 回答