CriticalHandle.ReleaseHandle メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > CriticalHandle.ReleaseHandle メソッドの意味・解説 

CriticalHandle.ReleaseHandle メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

派生クラスでオーバーライドされると、ハンドルを解放するために必要なコードを実行します。

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

適切な同期機構を使用して、Close メソッドまたは Dispose メソッドの呼び出しが 1 度だけ行われるようにしている場合、ReleaseHandle メソッドは必ず 1 度だけ呼び出されます。IsInvalid プロパティまたは IsClosed プロパティが true である場合、ReleaseHandle メソッドは呼び出されません。CriticalHandle の派生クラスでこのメソッドを実装し、ハンドルを解放するために必要なコードを実行します。CriticalHandle の機能の 1 つはリソースのリークを防ぐことであるため、ReleaseHandle の実装のコードは決して失敗しないようにする必要があります。ガベージ コレクタは、同時に収集したオブジェクトに対して通常のファイナライザが実行された後に ReleaseHandle を呼び出すため、このメソッドを確実に呼び出し、メソッドの実行中にその動作を中断しないことをリソースに対して保証します。このメソッドは、静的に決定可能な呼び出し先のすべてのメソッドと共に、インスタンス構築時に制約された実行領域 (CER: Constrained Execution Region) として用意されます。これにより、スレッドの中止によって処理が中断されることはなくなりますが、オーバーライドされた ReleaseHandle メソッドに違反パスが取り込まれないように注意する必要があります。特に、ReleaseHandle から呼び出すメソッドには、ReliabilityContractAttribute 属性を適用します。通常、このコードは次のようになります。

ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)

さらに、簡単なクリーンアップでは (ファイル ハンドルで Win32 API の CloseHandle を呼び出す場合など)、単一プラットフォーム呼び出しの戻り値をチェックできます。複雑なクリーンアップでは、多数のプログラム ロジックやメソッド呼び出しを使用できますが、それらの一部が失敗する場合もあります。プログラム ロジックでは、これらの各ケースに対するフォールバック コードを必ず用意するようにしてください。

何らかの理由で ReleaseHandle メソッドが false を返すと、ReleaseHandleFailed マネージ デバッグ アシスタントが生成されます。

.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CriticalHandle クラス
CriticalHandle メンバ
System.Runtime.InteropServices 名前空間
その他の技術情報
マネージ デバッグ アシスタントによるエラーの診断
ReleaseHandleFailed



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

CriticalHandle.ReleaseHandle メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CriticalHandle.ReleaseHandle メソッドのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS