2010-03-30 118 views
1

如何使緩存對象在緩存過期後將緩存對象與更新信息重新自我緩存?我試圖阻止請求緩存的下一個用戶必須處理獲取數據設置緩存然後使用它是否有任何後臺方法/事件我可以綁定對象,以便當它到期時它只是調用方法它自我和自我緩存。ASP.net創建自重新緩存對象?

回答

2

可以使用回調從緩存

System.Web.Caching.CacheItemRemovedCallback callback = 
    new System.Web.Caching.CacheItemRemovedCallback (OnRemove); 
Cache.Insert("key",myFile,null, 
    System.Web.Caching.Cache.NoAbsoluteExpiration, 
    TimeSpan.Zero, 
    System.Web.Caching.CacheItemPriority.Default, callback); 
. . . 
public static void OnRemove(string key, 
    object cacheItem, 
    System.Web.Caching.CacheItemRemovedReason reason) 
    { 
     // Logic 
    } 
+0

我現在面臨的這個實現的問題是它的HttpContext.Current.Cache說明不可用。 – BlackTea 2010-03-30 18:59:52

+0

嘗試使用'HttpContext.Current!= null? HttpContext.Current.Cache:HttpRuntime.Cache;' – vittore 2010-03-30 20:07:02

0

對不起,也許我失去了一些東西。但是,像你一樣的聲音保持更新緩存的數據。國際海事組織,在這種情況下最好使用CacheDependency而不是到期。當然,你必須在下一次請求時重新緩存它。

+0

這個想法是重新緩存每個xmin,而不需要下一個請求,並且必須手動啓動重新緩存。 – BlackTea 2010-03-30 19:11:22