Bagikan melalui


ObjectiveCMarshal.CreateReferenceTrackingHandle Metode

Definisi

Minta pelacakan referensi asli untuk objek yang disediakan.

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

Parameter

obj
Object

Objek yang akan dilacak.

taggedMemory

Span<IntPtr>

Span<nativeint>

Penunjuk ke memori yang ditandai ke objek .

Mengembalikan

Referensi melacak handel GC.

Pengecualian

OBJECTIVECMarshal API belum diinisialisasi.

Keterangan

Initialize() harus dipanggil sebelum memanggil fungsi ini.

obj harus memiliki jenis dalam hierarkinya yang ditandai dengan ObjectiveCTrackedTypeAttribute.

Panggilan balik "Direferensikan" yang diteruskan ke Initialize() akan diteruskan yang taggedMemory dikembalikan dari fungsi ini. Memori yang ditujukan didefinisikan oleh panjang dalam Span<T> dan akan dikosokkan. Ini akan tersedia sampai obj dikumpulkan oleh GC. Memori yang ditujukkan oleh taggedMemory dapat digunakan untuk tujuan apa pun oleh pemanggil fungsi ini dan dapat digunakan selama panggilan balik "Direferensikan".

Memanggil fungsi ini beberapa kali dengan yang sama obj akan mengembalikan handel baru setiap kali tetapi memori bertag yang sama akan dikembalikan. Memori yang ditandai hanya dijamin nol diinisialisasi pada panggilan pertama.

Pemanggil bertanggung jawab untuk membebaskan yang dikembalikan GCHandle.

Berlaku untuk