다음을 통해 공유


ObjectiveCMarshal.CreateReferenceTrackingHandle 메서드

정의

제공된 개체에 대한 네이티브 참조 추적을 요청합니다.

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

추적할 개체입니다.

taggedMemory

Span<IntPtr>

Span<nativeint>

개체에 태그가 지정된 메모리에 대한 포인터입니다.

반환

참조 추적 GC 핸들입니다.

예외

ObjectiveCMarshal API가 초기화되지 않았습니다.

설명

이 함수를 호출하기 전에 Initialize()를 호출해야 합니다.

에는 obj 로 표시된 ObjectiveCTrackedTypeAttribute계층 구조의 형식이 있어야 합니다.

Initialize()에 전달된 "Is Referenced" 콜백은 이 함수에서 반환된 taggedMemory 를 전달합니다. 가 가리키는 메모리는 의 길이 Span<T> 로 정의되며 0이 됩니다. GC에서 수집할 때까지 obj 사용할 수 있습니다. 가 가리키는 taggedMemory 메모리는 이 함수의 호출자가 어떤 용도로든 사용할 수 있으며 "Is Referenced" 콜백 중에 사용할 수 있습니다.

동일한 obj 를 사용하여 이 함수를 여러 번 호출하면 매번 새 핸들이 반환되지만 태그가 지정된 동일한 메모리가 반환됩니다. 태그가 지정된 메모리는 첫 번째 호출에서 0으로만 초기화됩니다.

호출자는 반환 GCHandle된 의 해제를 담당합니다.

적용 대상