IHttpCacheSpecificData::D ereferenceCacheData 方法
遞減快取資料的內部參考計數。
語法
virtual VOID DereferenceCacheData(
VOID
) = 0;
參數
此方法不會採用任何參數。
執行緒安全性
實作IHttpCacheSpecificData介面的類別是 和ReferenceCacheData方法的 DereferenceCacheData
執行緒安全。
備註
實作 介面的 IHttpCacheSpecificData
類別會使用執行緒安全記憶體管理的參考計數。 IHttpCacheSpecificData
建構指標時, (成員變數) 的內部參考計數 private
設為 1。 ReferenceCacheData
呼叫 方法時,這個參考計數會遞增 1。 DereferenceCacheData
呼叫 方法時,這個相同的參考計數會遞減 1。 只有當參考計數移至 0 時, IHttpCacheSpecificData
才會從堆積中移除指標。 此配置可確保 IHttpCacheSpecificData
在指標的最後一個用戶端呼叫 DereferenceCacheData
之前,不會刪除指標。
實作者的注意事項
ReferenceCacheData
和 DereferenceCacheData
方法實作應該是介面的執行緒安全 IHttpCacheSpecificData
。 實作者應該提供 protected
或 private
解構函式,只有在參考計數變成 0 時,才會在內部呼叫。
來電者的附注
用戶端不應該嘗試將介面轉換成 IHttpCacheSpecificData
更特定的類別,然後直接呼叫 delete
。 用戶端應該改為在擷取介面的指標 IHttpCacheSpecificData
時,只呼叫 ReferenceCacheData
方法一次,然後在不再存取指標時 IHttpCacheSpecificData
呼叫 DereferenceCacheData
方法。 您應該分別儘快和延遲呼叫 ReferenceCacheData
和 DereferenceCacheData
方法,以確保 IHttpCacheSpecificData
在不再需要時,指標在堆積上有效。
範例
下列程式碼範例示範實作 IHttpCacheSpecificData
方法的類別 MySpecificData
。
// Create a class that implements the IHttpCacheSpecificData interface.
class MySpecificData : public IHttpCacheSpecificData
{
public:
// Create a public constructor.
// Set the internal reference count to 1.
MySpecificData ()
{
m_cRefs = 1;
}
// Increment the internal reference count.
virtual VOID ReferenceCacheData(VOID)
{
InterlockedIncrement(&m_cRefs);
}
// Decrement the internal reference count.
virtual VOID DereferenceCacheData(VOID)
{
// Decrement the reference count and delete this
// if the count is 0.
if (0 == InterlockedDecrement(&m_cRefs))
{
delete this;
}
}
// To do: implement custom MySpecificData implementation.
private:
// Create a private destructor called from DereferenceCacheData.
virtual ~MySpecificData ()
{
}
// Create a private reference count member.
LONG m_cRefs;
}
規格需求
類型 | 描述 |
---|---|
Client | - Windows Vista 上的 IIS 7.0 - Windows 7 上的 IIS 7.5 - Windows 8 上的 IIS 8.0 - Windows 10上的 IIS 10.0 |
伺服器 | - Windows Server 2008 上的 IIS 7.0 - Windows Server 2008 R2 上的 IIS 7.5 - Windows Server 2012 上的 IIS 8.0 - Windows Server 2012 R2 上的 IIS 8.5 - Windows Server 2016上的 IIS 10.0 |
產品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 - IIS Express 7.5、IIS Express 8.0、IIS Express 10.0 |
標頭 | Httpserv.h |
另請參閱
IHttpCacheSpecificData 介面
IHttpFileInfo 介面
IHttpTokenEntry 介面