Sdílet prostřednictvím


HandleRef Struktura

Definice

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

Platí pro

Viz také