Udostępnij za pośrednictwem


ObjectiveCMarshal.Initialize Metoda

Definicja

Zainicjuj interfejs API marshalling języka 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)

Parametry

beginEndCallback
delegate* unmanaged<Void>

Wywoływane po rozpoczęciu i zakończeniu śledzenia.

isReferencedCallback

delegate* unmanaged<IntPtr, Int32>

delegate* unmanaged<nativeint, Int32>

Wywoływana w celu określenia, czy wystąpienie obiektu zarządzanego jest przywoływane w innym miejscu i nie może być zbierane przez GC.

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

delegate* unmanaged<nativeint, Void>

Wywoływana, gdy śledzony obiekt wchodzi do kolejki finalizacji.

unhandledExceptionPropagationHandler
ObjectiveCMarshal.UnhandledExceptionPropagationHandler

Procedura obsługi propagacji nieobsługiwanych wyjątków w zarządzanej —> natywnej granicy (czyli odwrotnej operacji P/Invoke).

Uwagi

Wszystkie niezarządzane wskaźniki funkcji muszą być zapisywane w kodzie natywnym, ponieważ będą wywoływane przez GC, a kod zarządzany nie może być uruchamiany w tym czasie.

Element zostanie wywołany po rozpoczęciu beginEndCallback i zakończeniu śledzenia odwołań. Skojarzona para początek/koniec nigdy nie zostanie zagnieżdżona. W przypadku korzystania ze stacji roboczej GC para początek/koniec zostanie wywołana w tym samym wątku. W przypadku korzystania z GC serwera para początek/koniec nie ma gwarancji, że zostanie wywołana w tym samym wątku.

Element isReferencedCallback powinien zwrócić wartość 0 dla odwołania lub 1 dla odwołania. Każda inna wartość ma niezdefiniowane zachowanie.

Dotyczy