分享方式:


參考計數

COM 本身不會在認為不再使用物件時,自動嘗試從記憶體中移除物件。 相反地,物件程式設計人員必須移除未使用的物件。 程式設計人員會根據參考計數來判斷是否可以移除物件。

COM 會 IUnknown 使用 AddRef Release 方法來 管理物件上介面的參考計數。 呼叫這些方法的一般規則如下:

  • 每當用戶端收到介面指標時, AddRef 都必須在介面上呼叫。

  • 每當用戶端使用介面指標完成時,它都必須呼叫 Release

在簡單的實作中,每個 AddRef 呼叫都會遞增,而每個 Release 呼叫都會遞減 物件內的計數器變數。 當計數傳回零時,介面不再有任何使用者,而且可以自由地從記憶體中移除本身。

您也可以實作參考計數,以便計算物件的每個參考(而不是個別介面)。 在此情況下,每個 AddRefRelease 都會呼叫 委派給 物件上的中央實作,並在 Release 物件參考計數達到零時釋放整個物件。

注意

CComObject使用 new 運算子建構衍生物件時,參考計數為 0。 因此, AddRef 在成功建立 CComObject 衍生物件之後,必須呼叫 。

另請參閱

COM 簡介
透過參考計數管理物件存留期