.dllが.dllのアクティビティを監視するワーカースレッドを開始するシナリオがあります。これは、ガベージコレクションのようなものであり、非アクティブな時間の後に内部キャッシュ内の要素をクリーンアップします。
問題は次のとおりです。特別な関数Shutdownでこのスレッドを停止するコードがありますが、これは常に呼び出されるとは限りません。これは、私が作成した1〜2個のアプリケーションから呼び出されますが、単体テストのサードパーティツールを使用します。たとえば、テストの任意のサブセットを実行するため、このメソッドを呼び出すことはできません。
また、そのようなコードをAppDomainDomainUnloadイベントにフックしてみました。これも呼び出されません。
AppDomain.CurrentDomain.DomainUnload += new EventHandler(
(o, e) => Shutdown() );
これをどのように処理しますか?これを機能させるために必要な他の「設計」/アプローチはありますか?