CriticalHandle Třída

Definice

Představuje obálkovou třídu pro zpracování prostředků.Represents a wrapper class for handle resources.

public ref class CriticalHandle abstract : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
Public MustInherit Class CriticalHandle
Inherits CriticalFinalizerObject
Implements IDisposable
Dědičnost
Odvozené
Atributy
Implementuje

Poznámky

Třída je podobná SafeHandle třídě, s výjimkou toho SafeHandle , že implementuje počítání odkazů. CriticalHandleThe CriticalHandle class is similar to the SafeHandle class, except that SafeHandle implements reference counting. CriticalHandle Místo toho můžete vymezit SafeHandle požadavky na výkon, když můžete zajistit efektivnější synchronizaci.You can use CriticalHandle instead of SafeHandle to address performance considerations when you can provide the necessary synchronization more efficiently yourself.

Vzhledem k CriticalHandle tomu, že třída neprovádí počítání odkazů, neposkytuje ochranu před útoky zabezpečení recyklace.Because the CriticalHandle class does not perform reference counting, it does not provide protection from handle recycling security attacks. Vzhledem k tomu, že algoritmus počítání odkazů implicitně serializovat operace, je také ztraceno určité množství bezpečnosti vlákna.Because the reference counting algorithm implicitly serializes operations, a certain amount of thread safety is also lost. Pokud voláte IDisposable.Dispose metodu nebo Close , zatímco operace, která používá popisovač, je v jiném vlákně nedokončená, nebo pokud voláte IDisposable.Dispose nebo Close ze dvou vláken současně, výsledky nejsou deterministické.If you call the IDisposable.Dispose or Close method while an operation that is using the handle is outstanding on another thread, or if you call IDisposable.Dispose or Close from two threads at the same time, the results are non-deterministic. Třída stále poskytuje zaručenou kritickou finalizaci poskytnutou CriticalFinalizerObject třídou. CriticalHandleThe CriticalHandle class still provides the guaranteed critical finalization provided by the CriticalFinalizerObject class.

Konstruktory

CriticalHandle(IntPtr)

Inicializuje novou instanci CriticalHandle třídy se zadanou neplatnou hodnotou popisovače.Initializes a new instance of the CriticalHandle class with the specified invalid handle value.

Pole

handle

Určuje popisovač, který má být zabalen.Specifies the handle to be wrapped.

Vlastnosti

IsClosed

Načte hodnotu, která označuje, jestli je popisovač uzavřený.Gets a value indicating whether the handle is closed.

IsInvalid

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda je hodnota popisovače neplatná.When overridden in a derived class, gets a value indicating whether the handle value is invalid.

Metody

Close()

Označí popisovač pro uvolnění a uvolnění prostředků.Marks the handle for releasing and freeing resources.

Dispose()

Uvolní všechny prostředky, které CriticalHandlepoužívá.Releases all resources used by the CriticalHandle.

Dispose(Boolean)

Uvolní nespravované prostředky používané CriticalHandle třídou určující, zda má být provedena operace normálního uvolnění.Releases the unmanaged resources used by the CriticalHandle class specifying whether to perform a normal dispose operation.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

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

Uvolní všechny prostředky přidružené k tomuto popisovači.Frees all resources associated with the handle.

GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

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

Type Získá aktuální instanci.Gets the Type of the current instance.

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

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

(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.When overridden in a derived class, executes the code required to free the handle.

SetHandle(IntPtr)

Nastaví popisovač na zadaný dříve existující popisovač.Sets the handle to the specified pre-existing handle.

SetHandleAsInvalid()

Označí popisovač jako neplatný.Marks a handle as invalid.

ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Zabezpečení

InheritanceDemand
pro úplný vztah důvěryhodnosti pro dědicefor full trust for inheritors. Tento člen nemůže být zděděn částečně důvěryhodným kódem.This member cannot be inherited by partially trusted code.

SecurityCriticalAttribute
vyžaduje úplný vztah důvěryhodnosti pro bezprostředně volajícího.requires full trust for the immediate caller. Tuto třídu nelze použít částečně důvěryhodným nebo transparentním kódem.This class cannot be used by partially trusted or transparent code.

Platí pro

Viz také