ObjectiveCMarshal.Initialize Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
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<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.