Udostępnij za pośrednictwem


CriticalHandle Klasa

Definicja

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)

Dotyczy

Zobacz też