2009-04-13 9 views
0

たとえば、安全でないコードを持つサードパーティのクラスがあります。いくつかのメモリを変更し、それ以降はメモリをクリアしません。それは、私はこのクラスを使用する必要があり、それは安全でない方法です。 あなたは、私に説明してください。次のガベージコレクタがパスした後、安全でないコードによって書かれたバイトはどうなるでしょうか?安全でないコードを持つクラスをインポートする

答えて

2

.NETガベージコレクタは、実行時に割り当てられていないため、これらのバイトで何も実行しません。彼らはちょうど漏れたままです。

0

何も起こりません。安全でないコードとメモリ割り当てでは、システムリソースを正しく解放するための安全でないコードまでです。

4

ガベージコレクタはそれらに手を触れません。あなたが管理されていないコードを妨害することを心配する必要がないので、それはいいです。一方、あなた自身でそれらをきれいにしないと、メモリリークです。

メモリを割り当てる安全でないコードを使用する場合は、いつでもIDisposableを実装するオブジェクトにラップします。サードパーティのクラスがまだIDisposableを実装していない場合は、その機能をカプセル化する新しいクラスを作成します。

関連する問題