ガベージ コレクションの技術サンプル
更新 : 2007 年 11 月
このサンプルでは、.NET Framework でのガベージ コレクションについて説明し、ガベージ コレクション対応の環境に適したクラスの設計機能を示します。また、コレクションの強制、オブジェクトの上位変換、オブジェクトへの弱い参照の使用などのガベージ コレクタの動作の一部を、アプリケーションで制御する方法も示します。
このサンプルの使用については、次のトピックを参照してください。
コマンド プロンプトを使用してサンプルをビルドするには
コマンド プロンプト ウィンドウを開き、GarbageCollection ディレクトリの使用言語に対応するサブディレクトリに移動します。
使用するプログラミング言語に応じて、コマンド ラインで「msbuild GarbageCollectionCS.sln」または「msbuild GarbageCollectionVB.sln」と入力します。たとえば、ディレクトリ C:\Documents and Setttings\Your User Name\My Documents\Samples\Technologies\GarbageCollection\VB で、「msbuild GarbageCollectionVB.sln」と入力して Visual Basic バージョンをビルドします。
Visual Studio を使用してサンプルをビルドするには
Windows エクスプローラを開き、GarbageCollection ディレクトリの使用言語に対応するサブディレクトリに移動します。
使用するプログラミング言語に応じて GarbageCollectionCS.sln のアイコンまたは GarbageCollectionVB.sln のアイコンをダブルクリックして、そのファイルを Visual Studio 2005 で開きます。
[ビルド] メニューの [ソリューションのビルド] をクリックします。
サンプルを実行するには
コマンド プロンプト ウィンドウを開き、新しい実行可能ファイルが格納されているディレクトリに移動します。
コマンド ラインで「GarbageCollection.exe」と入力します。
メモ :
このサンプルは、コンソール アプリケーションです。出力を表示するには、これをコマンド ラインで実行する必要があります。
必要条件
.NET Framework のバージョン : 2.0、1.1、1.0
解説
マネージ ランタイム環境では、ガベージ コレクション対応のヒープはすべてのクラス オブジェクトを管理します。このヒープはオブジェクトの有効期間を監視し、プログラム内でそれらのオブジェクトを参照している部分がなくなった時点で、それらのオブジェクトを解放します。これにより、オブジェクトのメモリ リークがなくなり、オブジェクトへの参照は必ず有効になります。終了処理が特殊なスレッドで発生することを示すために、このサンプルでは Thread クラスを使用してスレッドのハッシュ コードを取得しています。これにより、通常のメソッド呼び出しで返されたハッシュ コードと終了処理中に返されたコードとは値が異なることがわかります。
このサンプルは、ソース コードの範囲内で、System.Threading 名前空間を参照して、アプリケーション メソッドやガベージ コレクションが実行されている各スレッドのハッシュ コード値を取得しています。