HandleRef Struktura
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í.
Zabalí spravovaný objekt, který drží popisovač prostředku, který se předává nespravovanému kódu pomocí vyvolání platformy.
public value class HandleRef
public readonly struct HandleRef
public struct HandleRef
[System.Runtime.InteropServices.ComVisible(true)]
public struct HandleRef
type HandleRef = struct
[<System.Runtime.InteropServices.ComVisible(true)>]
type HandleRef = struct
Public Structure HandleRef
- Dědičnost
- Atributy
Poznámky
Důležité
Počínaje .NET Framework 2.0 byla funkce HandleRef třídy nahrazena SafeHandle třídou a jeho odvozenými třídamiCriticalHandle, stejně jako třídou.
Pokud používáte volání platformy k volání spravovaného objektu a objekt se neodkazuje jinde po volání platformy, je možné, aby systém uvolňování paměti finalizoval spravovaný objekt. Tato akce uvolní prostředek a zneplatní popisovač, což způsobí selhání volání volání platformy. Zabalení úchytu se zárukami HandleRef , že spravovaný objekt není uvolňování paměti, dokud se volání platformy nedokonjí. Popis služeb volání platformy naleznete v tématu Využívání nespravovaných funkcí knihovny DLL.
Typ HandleRef hodnoty, například GCHandle, je speciální typ rozpoznaný zařazováním zprostředkovatele komunikace. Normální, nepinovaný GCHandle také zabraňuje nečasným uvolňováním paměti, ale poskytuje HandleRef lepší výkon. I když použití HandleRef k zachování objektu naživu po dobu trvání volání volání platformy je upřednostňované, můžete také použít metodu GC.KeepAlive pro stejný účel.
Konstruktor HandleRef přebírá dva parametry: Object představuje obálku a IntPtr představuje nespravovaný popisovač. Zařazovač zprostředkovatele komunikace předá pouze popisovač nespravovanému kódu a zaručuje, že obálka (předaná jako první parametr konstruktoru HandleRef
) zůstane naživu po dobu trvání volání.
Konstruktory
HandleRef(Object, IntPtr) |
Inicializuje novou instanci HandleRef třídy s objektem pro zabalení a popisovač prostředku používaného nespravovaným kódem. |
Vlastnosti
Handle |
Získá popisovač prostředku. |
Wrapper |
Získá objekt, který drží popisovač prostředku. |
Metody
ToIntPtr(HandleRef) |
Vrátí vnitřní celočíselnou reprezentaci objektu HandleRef . |
Operátory
Explicit(HandleRef to IntPtr) |
Vrátí popisovač k prostředku zadaného HandleRef objektu. |