다음을 통해 공유


ObjectiveCMarshal.Initialize 메서드

정의

Objective-C 마샬링 API를 초기화합니다.

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)

매개 변수

beginEndCallback
delegate* unmanaged<Void>

추적이 시작되고 끝날 때 호출됩니다.

isReferencedCallback

delegate* unmanaged<IntPtr, Int32>

delegate* unmanaged<nativeint, Int32>

관리되는 개체 instance 다른 곳에서 참조되고 GC에서 수집해서는 안 되는지 확인하기 위해 호출됩니다.

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

delegate* unmanaged<nativeint, Void>

추적된 개체가 종료 큐에 들어갈 때 호출됩니다.

unhandledExceptionPropagationHandler
ObjectiveCMarshal.UnhandledExceptionPropagationHandler

관리> 되는 네이티브 경계(즉, 역방향 P/Invoke)에서 처리되지 않은 예외 전파를 위한 처리기입니다.

설명

관리되지 않는 모든 함수 포인터는 GC에서 호출되고 관리 코드는 해당 시간에 실행할 수 없으므로 네이티브 코드로 작성되어야 합니다.

참조 추적이 시작되고 종료될 때 가 beginEndCallback 호출됩니다. 연결된 시작/끝 쌍은 중첩되지 않습니다. Workstation GC를 사용하는 경우 동일한 스레드에서 시작/끝 쌍이 호출됩니다. 서버 GC를 사용하는 경우 시작/끝 쌍이 동일한 스레드에서 호출되도록 보장되지 않습니다.

isReferencedCallback 참조가 아닌 경우 0을 반환하고 참조할 경우 1을 반환해야 합니다. 다른 모든 값에는 정의되지 않은 동작이 있습니다.

적용 대상