CriticalHandle クラス

定義

ハンドル リソースのラッパー クラスを表します。

public ref class CriticalHandle abstract : IDisposable
public ref class CriticalHandle abstract : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : IDisposable
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
[<System.Security.SecurityCritical>]
type CriticalHandle = class
    interface IDisposable
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
[<System.Security.SecurityCritical>]
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
Public MustInherit Class CriticalHandle
Implements IDisposable
Public MustInherit Class CriticalHandle
Inherits CriticalFinalizerObject
Implements IDisposable
継承
CriticalHandle
継承
派生
属性
実装

注釈

クラスは CriticalHandle クラスに似ていますが SafeHandle 、参照カウントを実装する点が SafeHandle 除きます。 必要な同期をより効率的に自分で提供できる場合は、 ではなく SafeHandle を使用CriticalHandleしてパフォーマンスに関する考慮事項に対処できます。

クラスは参照カウントを CriticalHandle 実行しないため、セキュリティ攻撃のリサイクル処理からの保護は提供されません。 参照カウント アルゴリズムは操作を暗黙的にシリアル化するため、一定量のスレッド セーフも失われます。 ハンドルを使用している操作が別のIDisposable.Disposeスレッドで未処理の状態で または Close メソッドを呼び出した場合、または 2 つのスレッドから を同時に呼び出IDisposable.DisposeCloseした場合、結果は非決定的になります。 クラスは CriticalHandle 、クラスによって提供される保証されたクリティカルファイナライズを CriticalFinalizerObject 引き続き提供します。

コンストラクター

CriticalHandle(IntPtr)

指定した無効なハンドル値を使用して、CriticalHandle クラスの新しいインスタンスを初期化します。

フィールド

handle

ラップするハンドルを指定します。

プロパティ

IsClosed

ハンドルが閉じているかどうかを示す値を取得します。

IsInvalid

派生クラスでオーバーライドされると、ハンドル値が無効かどうかを示す値を取得します。

メソッド

Close()

リソースを解放するためのハンドルをマークします。

Dispose()

CriticalHandle によって使用されているすべてのリソースを解放します。

Dispose(Boolean)

通常の破棄操作を実行するかどうかを指定して、CriticalHandle クラスによって使用されているアンマネージ リソースを解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

ハンドルに関連付けられたすべてのリソースを解放します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ReleaseHandle()

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

SetHandle(IntPtr)

ハンドルを指定した既存のハンドルに設定します。

SetHandleAsInvalid()

ハンドルを無効としてマークします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください