私はアプリケーション内のオブジェクトへの弱い参照でいっぱいのコレクションを持っています。 このコレクションの期限切れの参照をクリーンアップする最も良い方法は何ですか。定期的に参照を参照して削除するタイマーオブジェクトを持つことをお勧めしますか?これをC#.NETで行うより良い方法はありますか? 編集:私のシナリオでは、コレクションはアプリケーション用に一度作成され、アプリケーションの実行中に存在するため、サイズが大きくなります。そのサイズを維持することが重要です。弱い参照のコレクションをクリーンアップする方法はありますか?
私は、フレームワークのバージョン3.5またはそれ以前のソリューションを好むでしょう。おかげさまで
私は並行性について同意しています。私はすでにクリーンアップ操作がスレッドセーフであるべきであることを覚えています。問題は、このコレクションがその使用法を取得するさまざまなシナリオをカバーすることができないことです。つまり、他の人が使用するライブラリの一部になるということです。 –
しかし、シーケンシャルコードソリューションは機能しますか?マルチスレッドは必要がないときに早すぎる最適化の一種です。 –
私が言及したように、私は私のコレクションがどのように使われているかをコントロールできないかもしれません。マルチスレッド環境で使用する場合は、同期が不可避であると私は信じています。 –