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 obsahující popisovač prostředku, který je předán nespravovanému kódu pomocí volá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 rozhraním .NET Framework 2.0 byla funkčnost HandleRef třídy nahrazena SafeHandle třídou a jejími odvozenými třídami CriticalHandle , stejně jako třídou .
Pokud k volání spravovaného objektu použijete volání platformy a na objekt se po volání volání platformy neodkazuje, je možné, aby systém uvolňování paměti spravovaný objekt finalizoval. Tato akce uvolní prostředek a zruší platnost popisovače, což způsobí selhání volání volání platformy. Zabalení popisovače se HandleRef zárukou, že se spravovaný objekt neshromáždí, dokud se volání vyvolání platformy nedokonče. Popis služeb vyvolání platformy najdete v tématu Využívání nespravovaných funkcí knihovny DLL.
Typ HandleRef hodnoty, jako GCHandleje , je speciální typ, který rozpozná zařazovač zprostředkovatele komunikace. Normální, neodepnuté GCHandle také zabraňuje předčasnému uvolňování paměti, ale HandleRef poskytuje lepší výkon. I když se dává přednost použití HandleRef k zachování objektu po dobu volání volání platformy, pro stejný účel můžete použít také metodu GC.KeepAlive .
Konstruktor HandleRef přijímá dva parametry: parametr Object představující obálku a IntPtr parametr představující nespravovaný popisovač. Zařazovač interoperability předává nespravovanému kódu pouze popisovač a zaručuje, že obálka (předaná jako první parametr konstruktoru HandleRef
) zůstane aktivní po dobu trvání volání.
Konstruktory
HandleRef(Object, IntPtr) |
Inicializuje novou instanci HandleRef třídy s objektem k zalamování a popisovačem 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í interní celočíselnou reprezentaci objektu HandleRef . |
Operátory
Explicit(HandleRef to IntPtr) |
Vrátí popisovač prostředku zadaného HandleRef objektu. |