ObjectiveCMarshal.CreateReferenceTrackingHandle メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定されたオブジェクトのネイティブ参照追跡を要求します。
public:
static System::Runtime::InteropServices::GCHandle CreateReferenceTrackingHandle(System::Object ^ obj, [Runtime::InteropServices::Out] Span<IntPtr> % taggedMemory);
public static System.Runtime.InteropServices.GCHandle CreateReferenceTrackingHandle (object obj, out Span<IntPtr> taggedMemory);
static member CreateReferenceTrackingHandle : obj * Span -> System.Runtime.InteropServices.GCHandle
Public Shared Function CreateReferenceTrackingHandle (obj As Object, ByRef taggedMemory As Span(Of IntPtr)) As GCHandle
パラメーター
- obj
- Object
追跡するオブジェクト。
戻り値
参照追跡 GC ハンドル。
例外
ObjectiveCMarshal API が初期化されていません。
注釈
Initialize() は、この関数を呼び出す前に呼び出す必要があります。
は obj
、階層内で でマークされた型を ObjectiveCTrackedTypeAttribute持っている必要があります。
Initialize() に渡される "Is Referenced" コールバックは、この関数から返された を taggedMemory
渡されます。
指すメモリは 内 Span<T> の長さによって定義され、ゼロになります。これは、GC によって収集されるまで obj
使用できます。
によって taggedMemory
指されるメモリは、この関数の呼び出し元が任意の目的で使用でき、"Is Referenced" コールバック中に使用できます。
この関数を同じ obj
で複数回呼び出すと、毎回新しいハンドルが返されますが、同じタグ付きメモリが返されます。 タグ付けされたメモリは、最初の呼び出しでゼロが初期化されることのみが保証されます。
呼び出し元は、返された GCHandleを解放する役割を担います。
適用対象
.NET