ObjectiveCMarshal.Initialize Metod

Definition

Initiera api:et för Objective-C marshalling.

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)

Parametrar

beginEndCallback
delegate* unmanaged<Void>

Anropas när spårningen börjar och slutar.

isReferencedCallback

delegate* unmanaged<IntPtr, Int32>

delegate* unmanaged<nativeint, Int32>

Anropas för att avgöra om en hanterad objektinstans refereras någon annanstans och får inte samlas in av GC.

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

delegate* unmanaged<nativeint, Void>

Anropas när ett spårat objekt går in i slutförandekön.

unhandledExceptionPropagationHandler
ObjectiveCMarshal.UnhandledExceptionPropagationHandler

Hanterare för spridning av ohanterade undantag över en hanterad –> intern gräns (dvs. Omvänd P/invoke).

Kommentarer

Alla ohanterade funktionspekare måste skrivas i intern kod eftersom de anropas av GC och den hanterade koden inte kan köras vid den tidpunkten.

beginEndCallback Anropas när referensspårningen börjar och slutar. Det associerade start-/slutparet kapslas aldrig. När du använder Workstation GC anropas paret begin/end i samma tråd. När du använder Server GC är det inte säkert att start-/slutparet anropas på samma tråd.

isReferencedCallback Bör returnera 0 för inte referens eller 1 för referens. Alla andra värden har odefinierat beteende.

Gäller för