Freigeben über


CriticalHandle Klasse

Definition

Stellt eine Wrapperklasse für Handleressourcen dar.

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
Vererbung
CriticalHandle
Vererbung
Abgeleitet
Attribute
Implementiert

Hinweise

Die CriticalHandle -Klasse ähnelt der -Klasse, mit der SafeHandle Ausnahme, dass SafeHandle die Verweiszählung implementiert. Sie können stattdessen SafeHandle Leistungsüberlegungen verwendenCriticalHandle, wenn Sie die erforderliche Synchronisierung selbst effizienter bereitstellen können.

Da die CriticalHandle -Klasse keine Verweiszählung ausführt, bietet sie keinen Schutz vor Sicherheitsangriffen zum Verarbeiten von Vorgängen. Da der Verweiszählungsalgorithmus Vorgänge implizit serialisiert, geht auch eine gewisse Threadsicherheit verloren. Wenn Sie die IDisposable.Dispose -Methode oder Close aufrufen, während ein Vorgang, der das Handle verwendet, in einem anderen Thread aussteht, oder wenn Sie oder Close von zwei Threads gleichzeitig aufrufenIDisposable.Dispose, sind die Ergebnisse nicht deterministisch. Die CriticalHandle -Klasse stellt weiterhin die von der CriticalFinalizerObject -Klasse bereitgestellte garantierte kritische Finalisierung bereit.

Konstruktoren

CriticalHandle(IntPtr)

Initialisiert eine neue Instanz der CriticalHandle-Klasse mit dem angegebenen ungültigen Handlewert.

Felder

handle

Gibt das zu umschließende Handle an.

Eigenschaften

IsClosed

Ruft einen Wert ab, der angibt, ob das Handle geschlossen ist.

IsInvalid

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob dieses Handle ungültig ist.

Methoden

Close()

Markiert das Handle für das Freigeben und Verfügbarmachen von Ressourcen.

Dispose()

Gibt alle vom CriticalHandle verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die von der CriticalHandle-Klasse verwendeten, nicht verwalteten Ressourcen frei und gibt an, ob ein normaler Freigabevorgang ausgeführt werden soll.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Gibt alle dem Handle zugeordneten Ressourcen frei.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ReleaseHandle()

Führt beim Überschreiben in einer abgeleiteten Klasse den Code aus, der für das Freigeben des Handles erforderlich ist.

SetHandle(IntPtr)

Legt das Handle für das angegebene, bereits vorhandene Handle fest.

SetHandleAsInvalid()

Markiert ein Handle als ungültig.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen