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

CComObjectKetika objek -turunan dibangun menggunakan new operator, jumlah referensi adalah 0. Oleh karena itu, panggilan ke AddRef harus dilakukan setelah berhasil membuat CComObjectobjek -turunan.

Baca juga

Pengantar COM
Mengelola Masa Pakai Objek melalui Penghitungan Referensi