Condividi tramite


CriticalHandle Classe

Definizione

Rappresenta una classe wrapper per le risorse di handle.

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
Ereditarietà
CriticalHandle
Ereditarietà
Derivato
Attributi
Implementazioni

Commenti

La CriticalHandle classe è simile alla classe , ad eccezione del fatto che SafeHandle implementa il SafeHandle conteggio dei riferimenti. È possibile usare CriticalHandle anziché SafeHandle per soddisfare le considerazioni sulle prestazioni quando è possibile fornire la sincronizzazione necessaria in modo più efficiente.

Poiché la classe non esegue il CriticalHandle conteggio dei riferimenti, non fornisce protezione da attacchi di sicurezza riciclati. Poiché l'algoritmo di conteggio dei riferimenti serializza in modo implicito le operazioni, viene persa anche una certa quantità di thread safety. Se si chiama il IDisposable.Dispose metodo o Close mentre un'operazione che usa l'handle è in sospeso in un altro thread o se si chiama IDisposable.Dispose o Close da due thread contemporaneamente, i risultati non sono deterministici. La CriticalHandle classe fornisce comunque la finalizzazione critica garantita fornita dalla CriticalFinalizerObject classe .

Costruttori

CriticalHandle(IntPtr)

Inizializza una nuova istanza della classe CriticalHandle con il valore di handle non valido specificato.

Campi

handle

Specifica l'handle di cui eseguire il wrapping.

Proprietà

IsClosed

Ottiene un valore che indica se l'handle è chiuso.

IsInvalid

Quando ne viene eseguito l'override in una classe derivata, consente di ottenere un valore che indica se il valore dell'handle non è valido.

Metodi

Close()

Contrassegna l'handle per il rilascio delle risorse.

Dispose()

Rilascia tutte le risorse usate da CriticalHandle.

Dispose(Boolean)

Rilascia le risorse non gestite usate dalla classe CriticalHandle specificando se eseguire una normale operazione di eliminazione.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Libera tutte le risorse associate all'handle.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ReleaseHandle()

Quando ne viene eseguito l'override in una classe derivata, esegue il codice necessario per liberare l'handle.

SetHandle(IntPtr)

Imposta l'handle sull'handle preesistente specificato.

SetHandleAsInvalid()

Contrassegna un handle come non valido.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche