ObjectiveCMarshal.CreateReferenceTrackingHandle 方法

定义

请求提供的对象的本机引用跟踪。

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

参数

obj
Object

要跟踪的对象。

taggedMemory

Span<IntPtr>

Span<nativeint>

指向标记到 对象的内存的指针。

返回

引用跟踪 GC 句柄。

例外

ObjectiveCMarshal API 尚未初始化。

注解

在调用此函数之前,必须调用 Initialize () 。

在其 obj 层次结构中必须有一个类型,该类型必须标记为 ObjectiveCTrackedTypeAttribute

传递给 Initialize () 的“被引用”回调将传递 taggedMemory 此函数返回的 。 它指向的内存由 中的长度定义, Span<T> 并将归零。在 GC 收集之前 obj ,它将可用。 指向 taggedMemory 的内存可由此函数的调用方用于任何目的,并且可以在“被引用”回调期间使用。

多次调用同 obj 一函数将返回一个新句柄,但将返回相同的标记内存。 标记的内存仅保证在第一次调用时初始化为零。

调用方负责释放返回的 GCHandle

适用于