ObjectiveCMarshal.Initialize Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicialize a API de 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)
Parâmetros
- beginEndCallback
- delegate* unmanaged<Void>
Chamado quando o acompanhamento começa e termina.
Chamado para determinar se uma instância de objeto gerenciado é referenciada em outro lugar e não deve ser coletada pelo GC.
- trackedObjectEnteredFinalization
-
delegate* unmanaged<nativeint, Void>
Chamado quando um objeto rastreado entra na fila de finalização.
- unhandledExceptionPropagationHandler
- ObjectiveCMarshal.UnhandledExceptionPropagationHandler
Manipulador para a propagação de exceções sem tratamento em um limite nativo gerenciado> (ou seja, P/Invoke reverso).
Comentários
Todos os ponteiros de função não gerenciados devem ser escritos em código nativo, pois eles serão chamados pelo GC e o código gerenciado não poderá ser executado nesse momento.
O beginEndCallback
será chamado quando o rastreamento de referência começar e terminar. O par de início/término associado nunca será aninhado. Ao usar o GC da Estação de Trabalho, o par de início/fim será chamado no mesmo thread. Ao usar o GC do Servidor, não há garantia de que o par de início/fim seja chamado no mesmo thread.
O isReferencedCallback
deve retornar 0 para não referência ou 1 para referenciado. Qualquer outro valor tem um comportamento indefinido.