CriticalHandle Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje klasę otoki dla obsługi zasobów.
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
- Dziedziczenie
-
CriticalHandle
- Dziedziczenie
- Pochodne
- Atrybuty
- Implementuje
Uwagi
Klasa jest podobna CriticalHandle do SafeHandle klasy, z tą różnicą, że SafeHandle implementuje zliczanie odwołań. Zamiast rozwiązywać problemy z SafeHandle wydajnością można użyćCriticalHandle, gdy możesz zapewnić niezbędną synchronizację wydajniej samodzielnie.
CriticalHandle Ponieważ klasa nie wykonuje zliczania odwołań, nie zapewnia ochrony przed atakami zabezpieczeń recyklingu. Ponieważ algorytm zliczania odwołań niejawnie serializuje operacje, utracono również pewną ilość bezpieczeństwa wątków. Jeśli wywołasz metodę IDisposable.Dispose lub Close , gdy operacja korzystająca z uchwytu jest zaległa w innym wątku, lub jeśli wywołasz IDisposable.Dispose lub Close z dwóch wątków w tym samym czasie, wyniki nie są deterministyczne. Klasa CriticalHandle nadal zapewnia gwarantowaną finalizację krytyczną dostarczoną przez klasę CriticalFinalizerObject .
Konstruktory
CriticalHandle(IntPtr) |
Inicjuje CriticalHandle nowe wystąpienie klasy z określoną nieprawidłową wartością uchwytu. |
Pola
handle |
Określa uchwyt, który ma być opakowany. |
Właściwości
IsClosed |
Pobiera wartość wskazującą, czy uchwyt jest zamknięty. |
IsInvalid |
W przypadku zastąpienia w klasie pochodnej pobiera wartość wskazującą, czy wartość uchwytu jest nieprawidłowa. |
Metody
Close() |
Oznacza uchwyt do zwalniania i zwalniania zasobów. |
Dispose() |
Zwalnia wszelkie zasoby używane przez element CriticalHandle. |
Dispose(Boolean) |
Zwalnia niezarządzane zasoby używane przez klasę CriticalHandle określającą, czy wykonać normalną operację usuwania. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Finalize() |
Zwalnia wszystkie zasoby skojarzone z uchwytem. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ReleaseHandle() |
Po zastąpieniu w klasie pochodnej wykonuje kod wymagany do zwolnienia uchwytu. |
SetHandle(IntPtr) |
Ustawia uchwyt do określonego wstępnie istniejącego uchwytu. |
SetHandleAsInvalid() |
Oznacza uchwyt jako nieprawidłowy. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |