Penghitungan Referensi

Catatan

Pustaka Templat Aktif (ATL) terus didukung. Namun, kami tidak lagi menambahkan fitur atau memperbarui dokumentasi.

COM sendiri tidak secara otomatis mencoba menghapus objek dari memori ketika berpikir objek tidak lagi digunakan. Sebagai gantinya, pemrogram objek harus menghapus objek yang tidak digunakan. Programmer menentukan apakah objek dapat dihapus berdasarkan jumlah referensi.

COM menggunakan IUnknown metode, AddRef dan Release, untuk mengelola jumlah referensi antarmuka pada objek. Aturan umum untuk memanggil metode ini adalah:

  • Setiap kali klien menerima penunjuk antarmuka, AddRef harus dipanggil pada antarmuka.

  • Setiap kali klien selesai menggunakan penunjuk antarmuka, klien harus memanggil Release.

Dalam implementasi sederhana, setiap pemanggilan AddRef menambahkan dan setiap pemanggilan Release mengurangi variabel penghitung di dalam objek. Ketika jumlah kembali ke nol, antarmuka tidak lagi memiliki pengguna dan bebas untuk menghapus dirinya dari memori.

Penghitungan referensi juga dapat diimplementasikan sehingga setiap referensi ke objek (bukan ke antarmuka individual) dihitung. Dalam hal ini, setiap AddRef dan Release panggilan mendelegasikan ke implementasi pusat pada objek, dan Release membebaskan seluruh objek ketika jumlah referensinya mencapai nol.

Catatan

Ketika objek turunan dibangun dengan operator CComObject, jumlah referensi adalah 0. Oleh karena itu, panggilan ke AddRef harus dilakukan setelah berhasil membuat objek CComObject yang diturunkan.

Lihat juga

Pengantar COM
Mengelola Masa Pakai Objek melalui Penghitungan Referensi