System.Collections.Concurrent 名前空間を試していますが、設計の実装に問題があります。
- 入力キュー (ConcurrentQueue) は、起動時に I/O を実行して読み取りと解析を行っているスレッドから正常に読み込まれています。
- 次に、入力キューで Parallel.ForEach() を開始します。各項目で I/O バウンドの作業を行っています。
- ForEach() で処理されたアイテムごとにログ アイテムが作成され、結果キューにドロップされます。
私がやりたいことは、すべてのログ項目をメモリに収めることができない可能性があるため、入力の読み取りを開始するロギングを開始することです。アイテムが結果キューに到着するのを待つ最善の方法は何ですか? 見るべき設計パターンや例はありますか?