ObjectiveCMarshal.Initialize Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Initialisez l’API de marshaling 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)
Paramètres
- beginEndCallback
- delegate* unmanaged<Void>
Appelé lorsque le suivi commence et se termine.
Appelé pour déterminer si un objet managé instance est référencé ailleurs et ne doit pas être collecté par le GC.
- trackedObjectEnteredFinalization
-
delegate* unmanaged<nativeint, Void>
Appelé lorsqu’un objet suivi entre dans la file d’attente de finalisation.
- unhandledExceptionPropagationHandler
- ObjectiveCMarshal.UnhandledExceptionPropagationHandler
Gestionnaire pour la propagation d’exceptions non gérées dans une limite native managée (c’est-à-dire> , P/Invoke inverse).
Remarques
Tous les pointeurs de fonction non managés doivent être écrits dans du code natif, car ils seront appelés par le GC et le code managé ne peut pas s’exécuter à ce moment-là.
Le beginEndCallback
sera appelé lorsque le suivi des références commence et se termine. La paire début/fin associée ne sera jamais imbriquée. Lors de l’utilisation du GC de station de travail, la paire début/fin est appelée sur le même thread. Lorsque vous utilisez Server GC, l’appel de la paire début/fin n’est pas garanti sur le même thread.
le isReferencedCallback
doit retourner 0 pour ne pas référence ou 1 pour référence. Toute autre valeur a un comportement non défini.