ObjectiveCMarshal.Initialize Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Inicialize a API de Objective-C de 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)
Parâmetros
- beginEndCallback
- delegate* unmanaged<Void>
Ligo quando o registo começa e termina.
Chamado para determinar se uma instância de objeto gerido está referenciada noutro local e não deve ser recolhida pelo GC.
- trackedObjectEnteredFinalization
-
delegate* unmanaged<nativeint, Void>
É chamado quando um objeto rastreado entra na fila de finalização.
- unhandledExceptionPropagationHandler
- ObjectiveCMarshal.UnhandledExceptionPropagationHandler
Handler para a propagação de Exceções não tratadas através de uma fronteira nativa> gerida (isto é, Reverse P/Invoke).
Observações
Todos os ponteiros de função não geridos devem ser escritos em código nativo, pois serão chamados pelo GC e o código gerido não pode ser executado nesse momento.
Será beginEndCallback chamado quando o rastreamento de referência começa e termina. O par inicial/final associado nunca será aninhado. Ao usar Workstation GC, o par início/fim será chamado no mesmo thread. Ao usar Server GC, o par início/fim não é garantido que seja chamado no mesmo thread.
Devem isReferencedCallback devolver 0 por não referência ou 1 por referência. Qualquer outro valor tem um comportamento indefinido.