Condividi tramite


ObjectiveCMarshal.CreateReferenceTrackingHandle Metodo

Definizione

Richiedere il rilevamento dei riferimenti nativi per l'oggetto fornito.

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

Parametri

obj
Object

Oggetto da tenere traccia.

taggedMemory

Span<IntPtr>

Span<nativeint>

Puntatore alla memoria contrassegnato per l'oggetto .

Restituisce

Handle GC di rilevamento dei riferimenti.

Eccezioni

L'API ObjectiveCMarshal non è stata inizializzata.

Commenti

È necessario chiamare Initialize() prima di chiamare questa funzione.

L'oggetto obj deve avere un tipo nella gerarchia contrassegnata con ObjectiveCTrackedTypeAttribute.

Il callback "Is Referenced" passato a Initialize() verrà passato all'oggetto taggedMemory restituito da questa funzione. La memoria a cui punta è definita dalla lunghezza in Span<T> e verrà azzerato. Sarà disponibile fino a quando obj non viene raccolto dal GC. La memoria a taggedMemory cui punta può essere usata per qualsiasi scopo dal chiamante di questa funzione e utilizzabile durante il callback "Is Referenced".

La chiamata a questa funzione più volte con la stessa obj funzione restituirà un nuovo handle ogni volta, ma verrà restituita la stessa memoria con tag. La memoria con tag è garantita solo per zero inizializzata nella prima chiamata.

Il chiamante è responsabile della liberazione dell'oggetto restituito GCHandle.

Si applica a