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
Отслеживаемый объект.
Возвращаемое значение
Дескриптор сборки мусора для отслеживания ссылок.
Исключения
API ObjectiveCMarshal не инициализирован.
Комментарии
Метод Initialize() должен быть вызван перед вызовом этой функции.
Объект obj должен иметь тип в иерархии, помеченный .ObjectiveCTrackedTypeAttribute
Обратный вызов Is Referenced, переданный в Initialize(), будет передан taggedMemory из этой функции.
Память, на которую он указывает, определяется длиной в Span<T> и будет обнуляться. Он будет доступен до тех пор, пока не obj будет собран сборкой мусора.
Память, на которую taggedMemory указывает , может использоваться вызывающей функцией для любых целей и может использоваться во время обратного вызова Is Referenced.
При вызове этой функции несколько раз с одной и той же obj функцией каждый раз возвращается новый дескриптор, но будет возвращена та же память с тегами. Память с тегами гарантированно будет инициализирована нулевым значением только при первом вызове.
Вызывающий объект отвечает за освобождение возвращенного GCHandle.