CriticalFinalizerObject クラス
アセンブリ: mscorlib (mscorlib.dll 内)


CriticalFinalizerObject クラスから派生したクラスは、暗黙的に制約された実行領域 (CER) として扱われます。これにより、ファイナライザ内のコードには、信頼性が十分高いコントラクトを持つコードだけを呼び出すように要求されます。CER の詳細については、System.Runtime.ConstrainedExecution 名前空間のトピックを参照してください。
CriticalFinalizerObject クラスから派生したクラスでは、ファイナライザが CER の規則に従っている限り、CLR によって強制的にアプリケーション ドメインがアンロードされたり、スレッドが中断されたりするような状況でも、絶対に実行されなければならない終了コードについてはすべて実行されるよう、共通言語ランタイム (CLR) によって保証されます。ファイナライザが CER の規則に違反していると、実行に失敗する場合があります。さらに、CLR によって、通常のファイナライザと重大なファイナライザ間の弱い順序付けが確立されます。ガベージ コレクションによって同時にクリアされるオブジェクトについては、重大なファイナライザの前に、すべての重大ではないファイナライザが呼び出されます。たとえば、CriticalFinalizerObject から派生した SafeHandle クラスにデータを保持する FileStream などのクラスは、標準のファイナライザを実行して、バッファ内の既存データをフラッシュできます。
ほとんどの場合、CriticalFinalizerObject クラスから派生するクラスを作成する必要はありません。.NET Framework クラス ライブラリには、リソース処理用の重大な終了操作の機能を提供する SafeHandle と CriticalHandle の 2 つのクラスが用意されています。さらに、.NET Framework には、SafeHandle クラスから派生した作成済みのクラスのセットが用意されています。このセットは Microsoft.Win32.SafeHandles 名前空間にあります。これらのクラスは、ファイルとオペレーティング システムの処理をサポートする共通機能を提供するために設計されています。

SafeFileHandle クラスを使用して、標準入力ストリームと標準出力ストリームの重大な終了操作を提供するコード例を次に示します。SafeHandle クラスから派生した SafeFileHandle は、FileStream コンストラクタでファイル ストリームに渡されます。
using System; using System.Runtime.InteropServices; using System.IO; using Microsoft.Win32.SafeHandles; namespace CriticalFinalizer { class Program { const int STD_INPUT_HANDLE = -10; const int STD_OUTPUT_HANDLE = -11; const int STD_ERROR_HANDLE = -12; [DllImport("Kernel32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] public static extern IntPtr GetStdHandle(int type); static void Main(string[] args) { FileStream fsIn = null; FileStream fsOut = null; try { SafeFileHandle sfhIn = new SafeFileHandle(GetStdHandle(STD_INPUT_HANDLE), false); fsIn = new FileStream(sfhIn, FileAccess.Read); byte[] input = new byte[] {0}; fsIn.Read(input,0,1); SafeFileHandle sfhOut = new SafeFileHandle(GetStdHandle(STD_OUTPUT_HANDLE), false); fsOut = new FileStream(sfhOut, FileAccess.Write); fsOut.Write(input,0,1); SafeFileHandle sf = fsOut.SafeFileHandle; } finally { if (fsIn != null) { fsIn.Close(); fsIn = null; } if (fsOut != null) { fsOut.Close(); fsOut = null; } } } } }

- SecurityPermission (アンマネージ コードを操作するために必要なアクセス許可)UnmanagedCode (関連する列挙体)



Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CriticalFinalizerObject コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


CriticalFinalizerObject メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | オーバーライドされます。 CriticalFinalizerObject クラスによって使用されているすべてのリソースを解放します。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

CriticalFinalizerObject メンバ
派生クラスのすべての終了コードが確実に重大であるとマークされるようにします。
CriticalFinalizerObject データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | オーバーライドされます。 CriticalFinalizerObject クラスによって使用されているすべてのリソースを解放します。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

Weblioに収録されているすべての辞書からCriticalFinalizerObjectを検索する場合は、下記のリンクをクリックしてください。

- CriticalFinalizerObjectのページへのリンク