作成するのに高価なオブジェクトがあります。これは、管理されていないリソースを使用します。このリソースは、完了したら明示的に解放しなければならないため、IDisposable()を実装します。私は、これらの高価なリソースのためのキャッシュを作成して、作成コストを最小限に抑えたいと思いますが、処分の対処方法を知りません。キャッシュされたIDisposableオブジェクトを管理する方法は?
オブジェクトを使用するメソッドが処理の責任を負う場合は、キャッシュ内に配置されたインスタンスが作成され、再作成する必要があり、キャッシュのポイントを破棄します。私がそれらを使用するメソッドにオブジェクトを配置しないと、決して処理されません。私はキャッシュから取り除かれたときにそれらを処分できると思っていましたが、その後メソッドで使用されているインスタンスを処分することになりました。
有効範囲外に出てガベージコレクタによって収集され、その時点でリソースが解放されるのは有効ですか?これは間違っていて使い捨てであるという考えに逆らっています...
私は基本的にこれとNoBugzの答えのハイブリッドであった解決策に終わったのです。ありがとう –