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 s popisovačem prostředku, který se předává 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
Important
Funkce HandleRef třídy byla nahrazena SafeHandle třídou a jejími odvozenými třídami, stejně jako CriticalHandle třídou.
Pokud k volání spravovaného objektu používáte volání platformy a na objekt se neodkazuje jinde po volání vyvolání platformy, je možné, aby systém uvolňování paměti dokončoval spravovaný objekt. Tato akce uvolní prostředek a zneplatní popisovač, což způsobí selhání volání vyvolání platformy. Zabalení popisovače se HandleRef zárukou, že spravovaný objekt není uvolňování paměti, dokud se volání vyvolání platformy nedokonče. 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í, neodepnutý GCHandle také zabraňuje nečasným uvolňování paměti, ale HandleRef poskytuje lepší výkon. I když použití HandleRef k zachování objektu naživu po dobu trvání volání vyvolání platformy je upřednostňované, můžete také použít metodu GC.KeepAlive pro stejný účel.
Konstruktor HandleRef má dva parametry: Object představuje obálku a IntPtr představuje nespravovaný popisovač. Zprostředkovatele komunikace předá pouze popisovač nespravovanému kódu a zaručuje, že obálka (předána jako první parametr konstruktoru HandleRef) zůstane aktivní po dobu trvání volání.
Konstruktory
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| Handle |
Získá popisovač prostředku. |
| Wrapper |
Získá objekt držící popisovač k prostředku. |
Metody
| Name | Description |
|---|---|
| ToIntPtr(HandleRef) |
Vrátí vnitřní celočíselnou reprezentaci objektu HandleRef . |
Operátory
| Name | Description |
|---|---|
| Explicit(HandleRef to IntPtr) |
Vrátí popisovač prostředku zadaného HandleRef objektu. |