ObjectiveCMarshal.CreateReferenceTrackingHandle 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
请求提供的对象的本机引用跟踪。
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
要跟踪的对象。
返回
引用跟踪 GC 句柄。
例外
ObjectiveCMarshal API 尚未初始化。
注解
在调用此函数之前,必须调用 Initialize () 。
在其 obj
层次结构中必须有一个类型,该类型必须标记为 ObjectiveCTrackedTypeAttribute。
传递给 Initialize () 的“被引用”回调将传递 taggedMemory
此函数返回的 。
它指向的内存由 中的长度定义, Span<T> 并将归零。在 GC 收集之前 obj
,它将可用。
指向 taggedMemory
的内存可由此函数的调用方用于任何目的,并且可以在“被引用”回调期间使用。
多次调用同 obj
一函数将返回一个新句柄,但将返回相同的标记内存。 标记的内存仅保证在第一次调用时初始化为零。
调用方负责释放返回的 GCHandle。