高速かつ最良のプロデューサー/コンシューマー キュー手法 BlockingCollection と同時キューの比較 [終了]
-
14-11-2019 - |
質問
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 機能...もちろん、まだ使用することはできませんが、今後何が起こるかを知っておくのは悪いことではありません。
所属していません StackOverflow