Sdílet prostřednictvím


ObjectiveCMarshal.Initialize Metoda

Definice

Inicializuje rozhraní API pro zařazování 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>

Volá se, když sledování začíná a končí.

isReferencedCallback

delegate* unmanaged<IntPtr, Int32>

delegate* unmanaged<nativeint, Int32>

Volá se k určení, jestli se na instanci spravovaného objektu odkazuje jinde a nesmí být shromažďována nástrojem GC.

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

delegate* unmanaged<nativeint, Void>

Volá se při vstupu sledovaného objektu do fronty finalizace.

unhandledExceptionPropagationHandler
ObjectiveCMarshal.UnhandledExceptionPropagationHandler

Obslužná rutina pro šíření neošetřených výjimek přes spravovanou nativní> hranici (to znamená Reverzní P/Invoke).

Poznámky

Všechny nespravované ukazatele na funkce musí být zapsány v nativním kódu, protože je bude volat GC a spravovaný kód nemůže v té době spustit.

Bude beginEndCallback volána, když sledování odkazů začíná a končí. Přidružený počáteční a koncový pár nebude nikdy vnořený. Pokud používáte pracovní stanici GC, bude ve stejném vlákně volána počáteční a koncová dvojice. Při použití serveru GC není zaručeno, že dvojice začátek/konec bude volána ve stejném vlákně.

Hodnota isReferencedCallback by měla vracet hodnotu 0, pokud není odkaz, nebo 1 pro odkazované. Jakákoli jiná hodnota má nedefinované chování.

Platí pro