Penghitungan Referensi
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 AddRef
kenaikan panggilan dan setiap Release
panggilan 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
CComObject
Ketika objek -turunan dibangun menggunakan new
operator, jumlah referensi adalah 0. Oleh karena itu, panggilan ke AddRef
harus dilakukan setelah berhasil membuat CComObject
objek -turunan.
Lihat juga
Pengantar COM
Mengelola Masa Pakai Objek melalui Penghitungan Referensi