ObjectiveCMarshal.Initialize Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.
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<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.