キューが終了すると、キューが終了すると、キューが空になると、要素のスレッドがブロックされます。この動作により、キューの生産者と消費者の調整が保証され、データが失われたり繰り返されたりすることはありません。 .NETでブロッキングキューを作成する方法は、から継承のカスタムセットを実現することでした。このタイプは、キューがいっぱいまたは空のときにスレッドをブロックするためにを使用できます。ただし、この方法は理想的ではありません。これは、多くのカスタムコードが必要であり、エラーが発生しやすいためです。
もっと良い方法はありますか?
はい、.NETでブロッキングキューを作成するより良い方法があります。 CollectionBase
命名スペースのAutoResetEvent
クラスは、ブロッキングキューのすべての機能を提供し、カスタムセットクラスよりも使いやすいです。
2つの主要な方法があります:と。キューがいっぱいの場合、メソッドは呼び出しスレッドをブロックします。
次の例System.Collections.Concurrent
クラス:BlockingCollection<T>
結論BlockingCollection<T>
Add
Take
クラスは、.NETでブロッキングキューを作成するための便利で効率的な方法です。カスタムセットクラスよりも使いやすく、ブロッキングキューのすべての機能を提供します。 Add
以上が.NETでブロッキングキューを効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。