ObjectiveCMarshal.Initialize Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizializzare l'API di marshalling 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)
Parametri
- beginEndCallback
- delegate* unmanaged<Void>
Chiamato all'inizio e alla fine del rilevamento.
Chiamato per determinare se viene fatto riferimento a un'istanza di oggetto gestito altrove e non deve essere raccolto dal GC.
- trackedObjectEnteredFinalization
-
delegate* unmanaged<nativeint, Void>
Chiamato quando un oggetto rilevato entra nella coda di finalizzazione.
- unhandledExceptionPropagationHandler
- ObjectiveCMarshal.UnhandledExceptionPropagationHandler
Gestore per la propagazione di eccezioni non gestite attraverso un limite nativo gestito> , ovvero P/Invoke inverso.
Commenti
Tutti i puntatori a funzione non gestiti devono essere scritti nel codice nativo perché verranno chiamati dal GC e il codice gestito non è in grado di essere eseguito in quel momento.
L'oggetto verrà chiamato all'inizio beginEndCallback
e alla fine del rilevamento dei riferimenti. La coppia di inizio/fine associata non verrà mai annidata. Quando si usa Workstation GC, la coppia di inizio/fine verrà chiamata sullo stesso thread. Quando si usa Server GC, non è garantito che la coppia begin/end venga chiamata sullo stesso thread.
Deve isReferencedCallback
restituire 0 per non fare riferimento o 1 per cui si fa riferimento. Qualsiasi altro valore ha un comportamento non definito.