CriticalHandle 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表控制代碼資源的包裝函式類別。
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
- 繼承
- 衍生
- 屬性
- 實作
備註
類別類似於 SafeHandle 類別CriticalHandle,但實作參考計數除外SafeHandle。 當您可以自行更有效率地提供必要的同步處理時,您可以使用 CriticalHandle 來代替 SafeHandle 來解決效能考慮。
因為 類別 CriticalHandle 不會執行參考計數,所以不會提供保護來處理回收安全性攻擊。 因為參考計數演算法會隱含串行化作業,所以也會遺失特定數量的線程安全性。 如果您在另一個線程上使用句柄的作業未完成時呼叫 IDisposable.Dispose 或 Close 方法,或同時呼叫 IDisposable.Dispose 兩 Close 個線程,則結果不具決定性。 類別 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) |