ObjectiveCMarshal.Initialize Methode

Definition

Initialisieren Sie die Ziel-C-Marshalling-API.

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)

Parameter

beginEndCallback
delegate* unmanaged<Void>

Wird aufgerufen, wenn die Nachverfolgung beginnt und endet.

isReferencedCallback

delegate* unmanaged<IntPtr, Int32>

delegate* unmanaged<nativeint, Int32>

Wird aufgerufen, um zu ermitteln, ob auf eine verwaltete Objektinstanz an anderer Stelle verwiesen wird und nicht von der GC erfasst werden darf.

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

delegate* unmanaged<nativeint, Void>

Wird aufgerufen, wenn ein nachverfolgtes Objekt die Endisierungswarteschlange eingibt.

unhandledExceptionPropagationHandler
ObjectiveCMarshal.UnhandledExceptionPropagationHandler

Handler für die Verteilung unbehandelter Ausnahmen über eine verwaltete> - systemeigene Grenze (d. h. Reverse P/Invoke).

Hinweise

Alle nicht verwalteten Funktionszeiger müssen in systemeigenem Code geschrieben werden, da sie vom GC aufgerufen werden und verwalteter Code zurzeit nicht ausgeführt werden kann.

Der beginEndCallback Wird aufgerufen, wenn die Referenznachverfolgung beginnt und endet. Das zugeordnete Anfangs-/Endpaar wird nie geschachtelt. Bei Verwendung von Workstation GC wird das Start-/End-Paar auf demselben Thread aufgerufen. Wenn Sie Server GC verwenden, wird das Start-/End-Paar nicht garantiert auf demselben Thread aufgerufen.

Der isReferencedCallback Wert sollte "0" für den Verweis oder "1" für den Verweis zurückgeben. Jeder andere Wert hat ein nicht definiertes Verhalten.

Gilt für: