ObjectiveCMarshal.Initialize Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализируйте API маршалинга Objective-C.
public:
static void Initialize(delegate* unmanaged<void> ^ beginEndCallback, delegate* unmanaged<IntPtr , int> ^ isReferencedCallback, delegate* unmanaged<IntPtr , void> ^ trackedObjectEnteredFinalization, System::Runtime::InteropServices::ObjectiveC::ObjectiveCMarshal::UnhandledExceptionPropagationHandler ^ unhandledExceptionPropagationHandler);
public static void Initialize (delegate* unmanaged<void> beginEndCallback, delegate* unmanaged<IntPtr, int> isReferencedCallback, delegate* unmanaged<IntPtr, void> trackedObjectEnteredFinalization, System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler unhandledExceptionPropagationHandler);
static member Initialize : delegate* unmanaged<unit> * delegate* unmanaged<nativeint, int> * delegate* unmanaged<nativeint, unit> * System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler -> unit
Public Shared Sub Initialize (beginEndCallback As delegate* unmanaged<Void>, isReferencedCallback As delegate* unmanaged< As IntPtr, Integer>, trackedObjectEnteredFinalization As delegate* unmanaged< As IntPtr, Void>, unhandledExceptionPropagationHandler As ObjectiveCMarshal.UnhandledExceptionPropagationHandler)
Параметры
- beginEndCallback
- delegate* unmanaged<Void>
Вызывается при начале и завершении отслеживания.
Вызывается для определения того, есть ли ссылка на экземпляр управляемого объекта в другом месте и не должна ли собираться сборкой мусора.
- trackedObjectEnteredFinalization
-
delegate* unmanaged<nativeint, Void>
Вызывается, когда отслеживаемый объект входит в очередь завершения.
- unhandledExceptionPropagationHandler
- ObjectiveCMarshal.UnhandledExceptionPropagationHandler
Обработчик для распространения необработанных исключений через управляемую> собственную границу (т. е. обратный P/Invoke).
Комментарии
Все указатели неуправляемых функций должны быть написаны в машинном коде, так как они будут вызываться сборкой мусора, и управляемый код не может выполняться в это время.
Вызывается beginEndCallback
при начале и завершении отслеживания ссылок. Связанная пара "начало-конец" никогда не будет вложенной. При использовании сборки мусора рабочей станции в том же потоке будет вызываться пара "начало-конец". При использовании сборки мусора сервера не гарантируется вызов пары "начало-конец" в одном потоке.
Объект isReferencedCallback
должен возвращать значение 0 для параметра not reference или 1 для ссылок. Любое другое значение имеет неопределенное поведение.