コレクションによって収集される前に、リソースの解放とその他のクリーンアップ操作の実行を試みることができるようにします。メソッドが呼び出されることを確認します。メソッドがオーバーライドされることに注意してください。メソッドをオーバーライドするのではなく、デストラクターが使用されていることにも注意してください。メソッド」を参照してください。メソッドは、オブジェクトが破棄される前に、現在のオブジェクトによって保持されているアンマネージリソースに対してクリーンアップ操作を実行するために使用されます。メソッドは保護されているため、このクラスまたは派生クラスを介してのみアクセスできます。メソッドの実装を提供しません。派生した型に終了をマークしません。メソッドをオーバーライドする場合、ガベージコレクターは、その型の各インスタンスのエントリを、終了キューと呼ばれる内部構造に追加します。終了キューには、ガベージコレクターがメモリを再利用できるようにするために、終了コードを実行する必要があるマネージヒープ内のすべてのオブジェクトのエントリが含まれています。メソッドを自動的に呼び出します。メソッドの呼び出しによって終了から除外されている場合を除き、オブジェクトにアクセスできないことをガベージコレクターが検出した後。シャットダウン中に、まだアクセス可能なオブジェクトであっても、終了します。特定のインスタンスで1回だけ自動的に呼び出されます。メソッドが呼び出されていない場合は除きます。操作には、次の制限があります。limitations:ファイナライザーが実行される正確な時間は未定義です。implementation.2つのオブジェクトのファイナライザーは、一方のオブジェクトが他方を参照している場合でも、特定の順序で実行されることは保証されません。ファイナライザーが開始されたときに既に完了している可能性があります。starts.ファイナライザーを実行するスレッドが指定されていません。メソッドが完了まで実行されないか、次の例外的な状況下ではまったく実行されない可能性があります。(無限ループに入る場合、は取得できないロックを取得しようとします)。ランタイムはファイナライザーの実行を完了しようとするため、ファイナライザーが無期限にブロックした場合、他のファイナライザーが呼び出されないことがあります。indefinitely.ランタイムをクリーンアップする機会を与えずにプロセスを終了する場合は。notification.実行可能オブジェクトの数が減少し続けている間、シャットダウン中にも、ランタイムはオブジェクトの最終処理を継続します。ブロックまたはファイナライザーが実行されます。この動作により、ファイナライザーがリソースを解放または破棄できない場合に、プロセスの整合性が確保されます。オーバーライドする必要があります。このクラスを使用するマネージオブジェクトは、ガベージコレクション中に破棄されます。メソッドを実装しないでください。パターンを実装し、Finalizeをオーバーライドしないことをお勧めします。代替」セクションを参照してください。オーバーライドし、アンマネージリソースだけを解放する必要があります。メモリの再利用は、終了操作を実行すると、少なくとも2つのガベージコレクションが必要になるため、かなり長くかかる傾向があります。メソッドをオーバーライドする必要があります。共通言語ランタイムは、参照型のみを終了します。値型のファイナライザーは無視されます。protectedです。クラス内でこのメソッドをオーバーライドする場合は、このスコープの範囲を維持する必要があります。メソッドを直接呼び出すことを防ぐことができます。Finalizeの実装を呼び出す必要があります。Finalizeを呼び出すことができる唯一のケースです。メソッドは、基底クラスのオブジェクト以外のオブジェクトに対してメソッドを呼び出すことはできません。コレクションされることがあるからです。メソッドをオーバーライドすることはできません。代わりに、クラスのデストラクターを実装することによってファイナライザーを提供します。C#は、基底クラスのデストラクターを自動的に呼び出します。メソッドを実装するための独自の構文も用意されています。(C++/cli)」の「デストラクターとファイナライザー」を参照してください。(C++/CLI).ガベージコレクションは非決定的であるため、ガベージコレクターが終了処理を実行するタイミングを正確に把握することはできません。インターフェイスを実装することもできます。実装は、アンマネージリソースを解放するためにクラスのコンシューマーによって呼び出すことができます。メソッドを使用してアンマネージリソースを解放できます。すべてのアクションを実行できます。オブジェクトを再生することはできません。ガベージコレクション中に再生オブジェクトで呼び出すことはできません。未処理のシステム例外によってファイナライザーが終了するため、信頼性の高いファイナライザーを作成することは、多くの場合、困難です。パターンを実装することができます。名前空間の次のクラスが用意されています。ファイルハンドルのラッパークラスです。メモリマップトファイルハンドルのラッパークラスです。アンマネージメモリブロックへのポインターのラッパークラスです。暗号化ハンドルのラッパークラスです。パイプハンドルのラッパークラスです。レジストリキーへのハンドルのラッパークラスです。待機ハンドルのラッパークラスです。パターンを使用します。コンストラクターに渡されます。メソッドを呼び出して、これらの2つのハンドルを解放します。Class適用対象こちらもご覧くださいSuppressFinalize(Object)ReRegisterForFinalize(Object)WaitForPendingFinalizers()WeakReferenceこのページはお役に立ちましたか?YesNo追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック商標このページはお役に立ちましたか?YesNo追加のフィードバックはありますか?スキップ送信ありがとうございます。Cookie利用条件サイトのフィードバック。