在.net的世界里,程序員只負(fù)責(zé)使用new創(chuàng)建對(duì)象,而對(duì)象的銷毀則完全交給垃圾回收器負(fù)責(zé),只有當(dāng)發(fā)生垃圾回收的時(shí)候,.net中的類型才會(huì)被銷毀。這通常不會(huì)引起什么不妥。但是,當(dāng)使用了非托管的com對(duì)象的時(shí)候,則會(huì)帶來(lái)特別的問(wèn)題。com使用引用計(jì)數(shù)來(lái)確定對(duì)象的生存期,com客戶每次引用對(duì)象的時(shí)候,就調(diào)用IUnKnown->AddRef(),而每次釋放對(duì)象的時(shí)候,就調(diào)用IUnKnown->Release(),一旦引用計(jì)數(shù)達(dá)到零,就釋放實(shí)例。問(wèn)題就這樣產(chǎn)生了,讓我們看下面的代碼: