ObjectiveCMarshal.CreateReferenceTrackingHandle Methode

Definition

Anfordern der systemeigenen Referenznachverfolgung für das angegebene 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

Parameter

obj
Object

Das zu verfolgende Objekt.

taggedMemory

Span<IntPtr>

Span<nativeint>

Ein Zeiger auf den Arbeitsspeicher, der auf das Objekt markiert wurde.

Gibt zurück

GCHandle

Referenzverfolgungs-GC-Handle.

Ausnahmen

Die ObjectiveCMarshal-API wurde nicht initialisiert.

Hinweise

Die Initialize() muss vor dem Aufrufen dieser Funktion aufgerufen werden.

Der obj Typ muss in seiner Hierarchie mit " gekennzeichnet" ObjectiveCTrackedTypeAttributesein.

Der an Initialize() übergebene Rückruf "Is Referenced" wird von taggedMemory dieser Funktion zurückgegeben. Der Speicher, auf dem es verweist, wird durch die Länge in der Span<T> und wird null ausgegrenzt. Es wird bis zur Erhebung durch die GC verfügbar obj sein. Der Speicher, auf den verwiesen wird, taggedMemory kann für jeden Zweck durch den Aufrufer dieser Funktion verwendet und während des Rückrufs "Is Referenced" verwendet werden.

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

Der Anrufer ist dafür verantwortlich, den zurückgegebenen GCHandleAnrufer freizugeben.

Gilt für: