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 -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) |