Referans Sayma

Not

Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

COM, nesnenin artık kullanılmadığını düşündüğü bir nesneyi bellekten otomatik olarak kaldırmaya çalışmaz. Bunun yerine, nesne programcısı kullanılmayan nesneyi kaldırmalıdır. Programcı, referans sayısına göre bir nesnenin kaldırılıp kaldırılamayacağını belirler.

COM, bir nesnedeki IUnknown arabirimlerin başvuru sayısını yönetmek için AddRef ve Release yöntemlerini kullanır. Bu yöntemleri çağırmak için genel kurallar şunlardır:

  • bir istemci bir arabirim işaretçisi aldığında, AddRef arabirimde çağrılmalıdır.

  • İstemci arabirim işaretçisini kullanmayı tamamladığında çağrısı Releaseyapmalıdır.

Basit bir uygulamada, her AddRef çağrısı nesne içindeki bir sayaç değişkenini artırır ve her Release çağrısı onu azaltır. Sayı sıfıra döndüğünde, arabirimde artık kullanıcı yoktur ve bellekten kendisini kaldırmakta serbesttir.

Başvuru sayımı, nesneye yapılan her başvurunun (tek bir arabirime değil) sayılması için de uygulanabilir. Bu durumda, her AddRef ve Release çağrısı, nesne üzerinde merkezi bir uygulamaya yönlendirir ve Release, başvuru sayısı sıfıra ulaştığında nesnenin tamamını serbest bırakır.

Not

CComObject türetilmiş bir nesne new işleci kullanılarak oluşturulduğunda, referans sayısı 0'dır. Bu nedenle, AddRef türevli nesne başarıyla oluşturulduktan sonra, bir CComObject çağrısı yapılmalıdır.

Ayrıca bkz.

COM’a Giriş
Referans Sayımı yoluyla Nesne Yaşam Döngüsünü Yönetimi