ObjectiveCMarshal.CreateReferenceTrackingHandle Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
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 .