次の方法で共有


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>

マネージド オブジェクト インスタンスが他の場所で参照されているかどうかを判断するために呼び出され、GC によって収集することはできません。

trackedObjectEnteredFinalization

delegate* unmanaged<IntPtr, Void>

delegate* unmanaged<nativeint, Void>

追跡対象オブジェクトが最終処理キューに入ったときに呼び出されます。

unhandledExceptionPropagationHandler
ObjectiveCMarshal.UnhandledExceptionPropagationHandler

マネージド -> ネイティブ境界 (つまり、逆 P/呼び出し) を介してハンドルされない例外を伝達するためのハンドラー。

注釈

すべてのアンマネージ関数ポインターは、GC によって呼び出され、マネージド コードはその時点で実行できないため、ネイティブ コードで記述する必要があります。

beginEndCallback 、参照追跡の開始と終了時に呼び出されます。 関連付けられた開始/終了ペアは入れ子になることはありません。 ワークステーション GC を使用する場合、開始と終了のペアは同じスレッドで呼び出されます。 サーバー GC を使用する場合、開始と終了のペアが同じスレッドで呼び出されるとは限りません。

は、参照しない場合は 0、参照されている場合は isReferencedCallback 1 を返す必要があります。 その他の値には未定義の動作があります。

適用対象