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機能 ...まだそれらを使用することはできませんが、何が来るかを知ることは害になりません。