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 。 當您可以更有效率地自行提供必要的同步處理時,您可以使用 CriticalHandle 而不是 SafeHandle 來處理效能考慮。

因為 類別 CriticalHandle 不會執行參考計數,所以它不會提供保護來處理回收安全性攻擊。 由於參考計數演算法會隱含序列化作業,因此也會遺失特定數量的執行緒安全性。 如果您在使用控制碼的作業在另一個執行緒上未完成時呼叫 IDisposable.DisposeClose 方法,或同時呼叫或 Close 從兩個執行緒呼叫 IDisposable.Dispose ,則結果不具決定性。 類別 CriticalHandle 仍然提供 類別所提供的 CriticalFinalizerObject 保證重大最終處理。

建構函式

CriticalHandle(IntPtr)

使用指定的無效控制代碼值,初始化 CriticalHandle 類別的新執行個體。

欄位

handle

指定要包裝的控制代碼。

屬性

IsClosed

取得值,指出控制代碼是否已關閉。

IsInvalid

在衍生類別中覆寫時,取得值以指出這個控制代碼值是否無效。

方法

Close()

標記要釋出和釋放資源的控制代碼。

Dispose()

釋放 CriticalHandle 所使用的所有資源。

Dispose(Boolean)

釋放 CriticalHandle 類別所使用的 Unmanaged 資源,指定是否要執行一般處置作業。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Finalize()

釋放與控制代碼相關的所有資源。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ReleaseHandle()

在衍生類別中覆寫時,執行釋放控制代碼所需的程式碼。

SetHandle(IntPtr)

將控制代碼設定為指定的既有控制代碼。

SetHandleAsInvalid()

將控制代碼標示為無效。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱