Freigeben über


ObjectiveCMarshal.CreateReferenceTrackingHandle Methode

Definition

Fordern Sie die systemeigene Verweisnachverfolgung für das angegebene Objekt an.

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

Parameter

obj
Object

Das zu verfolgende Objekt.

taggedMemory

Span<IntPtr>

Span<nativeint>

Ein Zeiger auf den Speicher, der auf das Objekt markiert ist.

Gibt zurück

Referenznachverfolgungs-GC-Handle.

Ausnahmen

Die ObjectiveCMarshal-API wurde nicht initialisiert.

Hinweise

Initialize() muss aufgerufen werden, bevor diese Funktion aufgerufen wird.

Der obj muss in seiner Hierarchie einen Typ aufweisen, der mit ObjectiveCTrackedTypeAttributegekennzeichnet ist.

Der an Initialize() übergebene Rückruf "Wird referenziert" wird von taggedMemory dieser Funktion zurückgegeben. Der Speicher, auf den er zeigt, wird durch die Länge in definiert Span<T> , und wird auf Null gesetzt. Sie steht zur Verfügung, bis obj sie vom GC erfasst wird. Der Speicher, auf den von taggedMemory verweist, kann vom Aufrufer dieser Funktion für jeden Zweck verwendet und während des Rückrufs "Wird referenziert" verwendet werden.

Wenn Sie diese Funktion mehrmals mit demselben obj aufrufen, wird jedes Mal ein neues Handle zurückgegeben, aber derselbe markierte Arbeitsspeicher wird zurückgegeben. Der markierte Arbeitsspeicher wird nur garantiert null beim ersten Aufruf initialisiert.

Der Aufrufer ist für das Freigeben des zurückgegebenen GCHandleverantwortlich.

Gilt für: