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>

Указатель на память, помеченный объектом.

Возвращаемое значение

Дескриптор отслеживания ссылок.

Исключения

API ObjectiveCMarshal не инициализирован.

Комментарии

Перед Initialize вызовом этой функции необходимо вызвать функцию.

Параметр obj должен иметь тип в иерархии, помеченный как ObjectiveCTrackedTypeAttribute.

Обратный вызов Is Referenced, переданный в Initialize(), будет передан taggedMemory возвращаемым из этой функции. Память, на которую она указывает, определяется длиной в и Span<T> будет отсчитываться от нуля. Она будет доступна до тех пор, пока obj не будет собрана GC. Память, указываемая на taggedMemory нее, может использоваться для любой цели вызывающей функцией и доступной для использования во время обратного вызова "Is Referenced".

Вызов этой функции несколько раз с obj одинаковым будет возвращать новый дескриптор каждый раз, но будет возвращена одна и та же помеченная память. Помеченная память гарантированно не инициализирована только при первом вызове.

Вызывающий объект отвечает за освобождение возвращаемого GCHandle.

Применяется к