Sdílet prostřednictvím


ObjectiveCMarshal.CreateReferenceTrackingHandle Metoda

Definice

Vyžádejte si nativní sledování referencí pro zadaný objekt.

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

Objekt, který chcete sledovat.

taggedMemory

Span<IntPtr>

Span<nativeint>

Ukazatel na paměť označený k objektu.

Návraty

Popisovač uvolňování paměti pro sledování referencí

Výjimky

Rozhraní API ObjectiveCMarshal nebylo inicializováno.

Poznámky

Před voláním této funkce musí být volána funkce Initialize().

Objekt obj musí mít ve své hierarchii typ označený ObjectiveCTrackedTypeAttribute.

Zpětné volání Is Referenced předané metodě Initialize() se předá z taggedMemory této funkce. Paměť, na kterou odkazuje, je definována délkou v Span<T> a bude vynulována. Bude k dispozici, dokud obj je neshromáždí uvolňování paměti. Paměť, na kterou odkazuje, taggedMemory může použít volající této funkce k libovolnému účelu a dá se použít při zpětném volání "Je odkazováno".

Volání této funkce vícekrát se stejným obj způsobem vrátí pokaždé nový popisovač, ale vrátí se stejná označená paměť. U označené paměti je zaručeno, že se inicializuje nula pouze při prvním volání.

Volající je zodpovědný za uvolnění vráceného GCHandlesouboru .

Platí pro