HandleRef Struktura

Definice

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
HandleRef
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.

Platí pro

Viz také