共用方式為


IHttpCacheSpecificData::D ecrementTTL 方法

遞減快取資料的存留時間 (TTL) 設定。

語法

virtual VOID DecrementTTL(  
   OUT BOOL* pfTTLExpired  
) = 0;  

參數

pfTTLExpired
[OUT] true 表示 TTL 計數已達 0;否則為 false

執行緒安全性

實作IHttpCacheSpecificData介面的類別是 和ResetTTL方法的安全 DecrementTTL 執行緒。

備註

參數 pfTTLExpired 不得為 Null;否則, DecrementTTL 方法會在某些實作中造成存取違規。

TTL 設定會指定快取的資料不再有效,因此,應該重載該資料的時間。 大部分 IHttpCacheSpecificData 實作會將初始內部計數設定為正值,然後允許透過對 方法的後續呼叫 DecrementTTL 來減少該計數。 如果 TTL 值變成 0,應該重載資料。

DecrementTTL的行為是特定的實作。 您應該使用下列資訊作為指導方針,但在所有案例中可能都不正確:

  • 實作 或IHttpTokenEntry介面的 IHttpCacheSpecificData 類別會在建構時將內部計數初始化為 2,並在每次呼叫 DecrementTTL 時將計數遞減 1。

  • 實作 IHttpFileInfo 介面的類別會有所不同。 某些類別會實作上述定義的配置,而其他類別則同時 ResetTTL 對 和 DecrementTTL 方法執行空的作業。

實作者的注意事項

DecrementTTLResetTTL 方法實作必須是指標的安全 IHttpCacheSpecificData 執行緒。

來電者的注意事項

大部分的呼叫端可能會忽略 DecrementTTL 方法,因為這個方法是要在內部使用。

範例

下列程式碼範例示範名為 MySpecificData 的類別,該類別會 IHttpCacheSpecificData 實作 方法。

class MySpecificData : public IHttpCacheSpecificData  
{  
public:  
    MySpecificData()  
    {  
        m_ttl = 2;  
    }  
  
    virtual ~MySpecificData()  
    {  
        m_ttl = 0;  
    }  
  
    virtual VOID ResetTTL(VOID)  
    {  
        m_ttl = 2;  
    }  
  
    virtual VOID DecrementTTL(BOOL* pfTTLExpired)  
    {  
        *pfTTLExpired = (InterlockedDecrement(&m_ttl) == 0);  
    }  
  
private:  
    LONG m_ttl;  
};  

規格需求

類型 描述
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 介面