Condividi tramite


ObjectiveCMarshal.Initialize Metodo

Definizione

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.

isReferencedCallback

delegate* unmanaged<IntPtr, Int32>

delegate* unmanaged<nativeint, Int32>

Chiamato per determinare se viene fatto riferimento a un'istanza di oggetto gestito altrove e non deve essere raccolto dal GC.

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

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.

Si applica a