Sdílet prostřednictvím


CriticalHandle Třída

Definice

Představuje třídu obálky pro zpracování prostředků.

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
Dědičnost
CriticalHandle
Dědičnost
Odvozené
Atributy
Implementuje

Poznámky

Třída CriticalHandle je podobná třídě s tím rozdílem SafeHandle , že SafeHandle implementuje počítání odkazů. Pokud chcete zajistit potřebnou synchronizaci efektivněji sami, můžete místo SafeHandle toho použít k CriticalHandle řešení požadavků na výkon.

Vzhledem k tomu, že CriticalHandle třída neprovádí počítání odkazů, neposkytuje ochranu před popisovači recyklačních bezpečnostních útoků. Vzhledem k tomu, že algoritmus počítání odkazů implicitně serializuje operace, je také ztracena určitá míra bezpečnosti vláken. Pokud voláte metodu IDisposable.Dispose nebo Close zatímco operace, která používá popisovač je nevyřešena v jiném vlákně, nebo pokud voláte IDisposable.Dispose nebo Close ze dvou vláken současně, výsledky nejsou deterministické. Třída CriticalHandle stále poskytuje zaručené kritické finalizace poskytované CriticalFinalizerObject třídou .

Konstruktory

CriticalHandle(IntPtr)

Inicializuje novou instanci CriticalHandle třídy se zadanou neplatnou hodnotou popisovače.

Pole

handle

Určuje popisovač, který se má zabalit.

Vlastnosti

IsClosed

Získá hodnotu označující, zda je popisovač uzavřen.

IsInvalid

Při přepsání v odvozené třídě získá hodnotu označující, zda je hodnota popisovače neplatná.

Metody

Close()

Označí popisovač pro uvolnění a uvolnění prostředků.

Dispose()

Uvolní všechny prostředky používané nástrojem CriticalHandle.

Dispose(Boolean)

Uvolní nespravované prostředky používané CriticalHandle třídou určující, zda se má provést normální operace odstranění.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Finalize()

Uvolní všechny prostředky přidružené k popisovači.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ReleaseHandle()

Při přepsání v odvozené třídě spustí kód potřebný k uvolnění popisovače.

SetHandle(IntPtr)

Nastaví popisovač na zadaný předem existující popisovač.

SetHandleAsInvalid()

Označí popisovač jako neplatný.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také