Udostępnij za pośrednictwem


ObjectiveCMarshal.CreateReferenceTrackingHandle Metoda

Definicja

Zażądaj natywnego śledzenia odwołań dla dostarczonego obiektu.

public:
 static System::Runtime::InteropServices::GCHandle CreateReferenceTrackingHandle(System::Object ^ obj, [Runtime::InteropServices::Out] Span<IntPtr> % taggedMemory);
public static System.Runtime.InteropServices.GCHandle CreateReferenceTrackingHandle (object obj, out Span<IntPtr> taggedMemory);
static member CreateReferenceTrackingHandle : obj * Span -> System.Runtime.InteropServices.GCHandle
Public Shared Function CreateReferenceTrackingHandle (obj As Object, ByRef taggedMemory As Span(Of IntPtr)) As GCHandle

Parametry

obj
Object

Obiekt do śledzenia.

taggedMemory

Span<IntPtr>

Span<nativeint>

Wskaźnik do pamięci otagowany do obiektu.

Zwraca

Śledzenie odwołań do uchwytu GC.

Wyjątki

Interfejs API ObjectiveCMarshal nie został zainicjowany.

Uwagi

Przed wywołaniem tej funkcji należy wywołać funkcję Initialize().

Musi obj mieć typ w hierarchii oznaczony za pomocą polecenia ObjectiveCTrackedTypeAttribute.

Wywołanie zwrotne "Is Referenced" przekazane do funkcji Initialize() zostanie przekazane taggedMemory zwrócone z tej funkcji. Pamięć, na którą wskazuje punkt, jest definiowana przez długość elementu Span<T> i będzie wyzerowana. Będzie ona dostępna do obj momentu zebrania przez GC. Pamięć wskazywana przez taggedMemory program może być używana do dowolnego celu przez obiekt wywołujący tej funkcji i używany podczas wywołania zwrotnego "Is Referenced".

Wywołanie tej funkcji wiele razy z tym samym obj spowoduje zwrócenie nowego uchwytu za każdym razem, ale ta sama pamięć otagowana zostanie zwrócona. Pamięć oznakowana jest gwarantowana tylko jako zero zainicjowana podczas pierwszego wywołania.

Obiekt wywołujący jest odpowiedzialny za zwolnienie zwróconego GCHandleelementu .

Dotyczy