Bagikan melalui


HandleRef Struktur

Definisi

Membungkus objek terkelola yang memegang handel ke sumber daya yang diteruskan ke kode yang tidak dikelola menggunakan pemanggilan platform.

public value class HandleRef
public readonly struct HandleRef
public struct HandleRef
[System.Runtime.InteropServices.ComVisible(true)]
public struct HandleRef
type HandleRef = struct
[<System.Runtime.InteropServices.ComVisible(true)>]
type HandleRef = struct
Public Structure HandleRef
Warisan
HandleRef
Atribut

Keterangan

Penting

Dimulai dengan .NET Framework 2.0, fungsionalitas HandleRef kelas telah digantikan oleh SafeHandle kelas dan kelas turunannya, serta oleh CriticalHandle kelas .

Jika Anda menggunakan pemanggilan platform untuk memanggil objek terkelola, dan objek tidak dirujuk di tempat lain setelah platform memanggil panggilan, dimungkinkan bagi pengumpul sampah untuk menyelesaikan objek terkelola. Tindakan ini merilis sumber daya dan membatalkan handel, menyebabkan panggilan pemanggilan platform gagal. Membungkus handel dengan HandleRef jaminan bahwa objek terkelola tidak dikumpulkan sampah sampai panggilan pemanggilan platform selesai. Untuk deskripsi layanan pemanggilan platform, lihat Mengonsumsi Fungsi DLL Yang Tidak Dikelola.

Jenis HandleRef nilai, seperti GCHandle, adalah jenis khusus yang dikenali oleh marshaler interop. Normal, nonpinned GCHandle juga mencegah pengumpulan sampah yang tidak tepat waktu, namun HandleRef memberikan performa yang lebih baik. Meskipun menggunakan HandleRef untuk menjaga objek tetap hidup selama panggilan pemanggilan platform lebih disukai, Anda juga dapat menggunakan GC.KeepAlive metode untuk tujuan yang sama.

HandleRef Konstruktor mengambil dua parameter: Object mewakili pembungkus, dan mewakili handel yang IntPtr tidak dikelola. Marshaler interop hanya meneruskan handel ke kode yang tidak dikelola, dan menjamin bahwa pembungkus (diteruskan sebagai parameter pertama ke konstruktor HandleRef) tetap hidup selama panggilan.

Konstruktor

HandleRef(Object, IntPtr)

Menginisialisasi instans HandleRef baru kelas dengan objek untuk dibungkus dan handel ke sumber daya yang digunakan oleh kode yang tidak dikelola.

Properti

Handle

Mendapatkan handel ke sumber daya.

Wrapper

Mendapatkan objek yang memegang handel ke sumber daya.

Metode

ToIntPtr(HandleRef)

Mengembalikan representasi bilangan bulat internal objek HandleRef .

Operator

Explicit(HandleRef to IntPtr)

Mengembalikan handel ke sumber daya objek yang ditentukan HandleRef .

Berlaku untuk

Lihat juga