ブロッキング キューを備えた単一のプロデューサー/単一の消費者モデルを使用しています。プロデューサーが生産を終了したら、キューが空になるのを待ってから戻るようにしたいと思います。
ここで Marc Gravellが提案した BlockingQueue を実装しました。
私のモデルでは、プロデューサー (レンダラー) はイベントを使用して、ファイルがレンダリングされているとき (ワーカーがアイテムをキューに入れているとき)、およびすべてのファイルがレンダリングされたとき (終了したとき) にワーカー (プリンター) に通知します。
現在、レンダラーが完了すると、メソッドが終了し、ワーカーが強制終了されるため、印刷されていないレンダリング ファイルが 10 ~ 15 個残っています。
キューが空になるまで、たとえばすべてのファイルが印刷されるまで、終了イベント ハンドラをブロックしたいと考えています。キューが空になるまでブロックする「WaitToClose()」メソッドのようなものを追加したいと思います。
(違いを生むためにワーカースレッドを設定しIsBackground = true
ますか?)