CriticalHandle Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 SafeHandle Klasse, außer dass SafeHandle die Referenzzählung implementiert wird. Sie können anstelle von SafeHandle Leistungsüberlegungen verwendenCriticalHandle, wenn Sie die erforderliche Synchronisierung effizienter selbst bereitstellen können.
Da die CriticalHandle Klasse keine Referenzzählung ausführt, bietet sie keinen Schutz vor dem Recycling von Sicherheitsangriffen. Da der Verweiszählungsalgorithmus implizit Vorgänge serialisiert, geht auch eine bestimmte Menge an Threadsicherheit verloren. Wenn Sie die IDisposable.Dispose Close Methode aufrufen, während ein Vorgang, der den Handle verwendet, auf einem anderen Thread ausstehender Vorgang ist, oder wenn Sie gleichzeitig zwei Threads aufrufen IDisposable.Dispose , Close sind die Ergebnisse nicht deterministisch. Die CriticalHandle Klasse stellt weiterhin die garantierte kritische Finalisierung bereit, die von der CriticalFinalizerObject Klasse bereitgestellt wird.
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) |