CriticalHandle Classe

Définition

Représente une classe wrapper pour les ressources de handle.Represents a wrapper class for handle resources.

public ref class CriticalHandle abstract : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
Public MustInherit Class CriticalHandle
Inherits CriticalFinalizerObject
Implements IDisposable
Héritage
Dérivé
Attributs
Implémente

Remarques

La classe CriticalHandle est semblable à la classe SafeHandle, sauf que SafeHandle implémente le décompte de références.The CriticalHandle class is similar to the SafeHandle class, except that SafeHandle implements reference counting. Vous pouvez utiliser CriticalHandle au lieu de SafeHandle pour résoudre les problèmes de performances lorsque vous pouvez fournir la synchronisation nécessaire de manière plus efficace.You can use CriticalHandle instead of SafeHandle to address performance considerations when you can provide the necessary synchronization more efficiently yourself.

Étant donné que la classe CriticalHandle n’effectue pas de décompte de références, elle ne fournit pas de protection contre les attaques de sécurité de recyclage des handles.Because the CriticalHandle class does not perform reference counting, it does not provide protection from handle recycling security attacks. Étant donné que l’algorithme de décompte de références sérialise implicitement les opérations, une certaine quantité de sécurité des threads est également perdue.Because the reference counting algorithm implicitly serializes operations, a certain amount of thread safety is also lost. Si vous appelez la méthode IDisposable.Dispose ou Close alors qu’une opération qui utilise le handle est en attente 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.If you call the IDisposable.Dispose or Close method while an operation that is using the handle is outstanding on another thread, or if you call IDisposable.Dispose or Close from two threads at the same time, the results are non-deterministic. La classe CriticalHandle fournit toujours la finalisation critique garantie fournie par la classe CriticalFinalizerObject.The CriticalHandle class still provides the guaranteed critical finalization provided by the CriticalFinalizerObject class.

Constructeurs

CriticalHandle(IntPtr)

Initialise une nouvelle instance de la classe CriticalHandle avec la valeur de handle non valide spécifiée.Initializes a new instance of the CriticalHandle class with the specified invalid handle value.

Champs

handle

Spécifie le handle à encapsuler.Specifies the handle to be wrapped.

Propriétés

IsClosed

Obtient une valeur indiquant si le handle est fermé.Gets a value indicating whether the handle is closed.

IsInvalid

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si la valeur du handle n'est pas valide.When overridden in a derived class, gets a value indicating whether the handle value is invalid.

Méthodes

Close()

Marque le handle pour libérer des ressources.Marks the handle for releasing and freeing resources.

Dispose()

Libère toutes les ressources utilisées par CriticalHandle.Releases all resources used by the 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.Releases the unmanaged resources used by the CriticalHandle class specifying whether to perform a normal dispose operation.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
Finalize()

Libère toutes les ressources associées au handle.Frees all resources associated with the handle.

GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(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.When overridden in a derived class, executes the code required to free the handle.

SetHandle(IntPtr)

Définit le handle au handle préexistant spécifié.Sets the handle to the specified pre-existing handle.

SetHandleAsInvalid()

Marque un handle comme non valide.Marks a handle as invalid.

ToString()

Retourne une chaîne qui représente l'objet en cours.Returns a string that represents the current object.

(Hérité de Object)

Sécurité

InheritanceDemand
pour une confiance totale pour les héritiers.for full trust for inheritors. Ce membre ne peut pas être hérité par du code de confiance partielle.This member cannot be inherited by partially trusted code.

SecurityCriticalAttribute
requiert une confiance totale pour l’appelant immédiat.requires full trust for the immediate caller. Cette classe ne peut pas être utilisée par du code de confiance partielle ou transparent.This class cannot be used by partially trusted or transparent code.

S’applique à

Voir aussi