Partager via


CriticalHandle Classe

Définition

Représente une classe wrapper pour les ressources de 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
Héritage
CriticalHandle
Héritage
Dérivé
Attributs
Implémente

Remarques

La CriticalHandle classe est similaire à la SafeHandle classe, sauf que SafeHandle implémente le comptage des références. Vous pouvez utiliser CriticalHandle au lieu de SafeHandle pour répondre aux considérations relatives aux performances lorsque vous pouvez fournir vous-même la synchronisation nécessaire plus efficacement.

Étant donné que la CriticalHandle classe n’effectue pas le comptage des références, elle ne fournit pas de protection contre les attaques de sécurité de recyclage. Étant donné que l’algorithme de comptage des références sérialise implicitement les opérations, une certaine sécurité des threads est également perdue. Si vous appelez la IDisposable.Dispose méthode ou Close alors qu’une opération qui utilise le handle est en cours sur un autre thread, ou si vous appelez IDisposable.Dispose ou Close à partir de deux threads en même temps, les résultats ne sont pas déterministes. La CriticalHandle classe fournit toujours la finalisation critique garantie fournie par la CriticalFinalizerObject classe.

Constructeurs

CriticalHandle(IntPtr)

Initialise une nouvelle instance de la classe CriticalHandle avec la valeur de handle non valide spécifiée.

Champs

handle

Spécifie le handle à encapsuler.

Propriétés

IsClosed

Obtient une valeur indiquant si le handle est fermé.

IsInvalid

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si la valeur du handle n'est pas valide.

Méthodes

Close()

Marque le handle pour libérer des ressources.

Dispose()

Libère toutes les ressources utilisées par CriticalHandle.

Dispose(Boolean)

Libère les ressources non managées utilisées par la classe CriticalHandle, en spécifiant s'il faut exécuter une opération de suppression normale.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Finalize()

Libère toutes les ressources associées au handle.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ReleaseHandle()

En cas de substitution dans une classe dérivée, exécute le code nécessaire pour libérer le handle.

SetHandle(IntPtr)

Définit le handle au handle préexistant spécifié.

SetHandleAsInvalid()

Marque un handle comme non valide.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi