CriticalHandle Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje obálkovou třídu 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á SafeHandle třídě s tím rozdílem, že SafeHandle implementuje počítání odkazů. Místo toho, CriticalHandleSafeHandle abyste vyřešili aspekty výkonu, když můžete zajistit potřebnou synchronizaci efektivněji sami.
Vzhledem k tomu, že CriticalHandle třída neprovádí počítání odkazů, neposkytuje ochranu před zpracováním recyklačních bezpečnostních útoků. Vzhledem k tomu, že algoritmus počítání odkazů implicitně serializuje operace, dojde také ke ztrátě určitého množství bezpečnosti vlákna. Pokud voláte metodu IDisposable.Dispose nebo Close metodu, zatímco operace, která používá popisovač, je nevyrovnaná 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 garantovanou kritickou finalizaci poskytovanou CriticalFinalizerObject třídou.
Konstruktory
| Name | Description |
|---|---|
| CriticalHandle(IntPtr) |
Inicializuje novou instanci CriticalHandle třídy se zadanou neplatnou hodnotou popisovače. |
Pole
| Name | Description |
|---|---|
| handle |
Určuje popisovač, který se má zabalit. |
Vlastnosti
| Name | Description |
|---|---|
| IsClosed |
Získá hodnotu označující, zda je úchyt 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
| Name | Description |
|---|---|
| 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 provést normální operaci dispose. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven 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í funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního 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. |
| SetHandle(IntPtr) |
Nastaví popisovač na zadaný před existující popisovač. |
| SetHandleAsInvalid() |
Označí popisovač jako neplatný. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |