高速かつ最良のプロデューサー/コンシューマー キュー手法 BlockingCollection と同時キューの比較 [終了]

StackOverflow https://stackoverflow.com/questions/5001003

質問

C# 3.0 で Generic.Queue を使用し、キューを消費する前に待機するために Monitor.Enter,wait,exit を使用しています (要素がキューに入れられるのを待ちます)。現在は C# 4 に移行しています。

特にロックを回避するために、どれが高速で最適であるかを誰かが教えてください。

BlockingCollection と concurrentQueue またはその他のもの...

注記。プロデューサーを制限したくない

前もって感謝します..

役に立ちましたか?

解決

BlockingCollection そして ConcurrentQueue まさにこの理由のために存在します。これより優れた、またはより使いやすいものは見つからないと思います。並列拡張機能チームは自分たちのことをよく知っています:)

ただし、バージョンを簡単に確認してください。C# 4 だけでなく、.NET 4 を使用していることは間違いありません。(たとえば、Visual Studio 2010 を使用しているため C# 4 を使用していても、引き続き .NET 3.5 をターゲットにしている可能性があります。その場合、Parallel Extensions は使用できません。)

調査を開始することもできます タスクベースの非同期パターン, TPL データフロー そしてその C# 5 の async/await 機能...もちろん、まだ使用することはできませんが、今後何が起こるかを知っておくのは悪いことではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top