我有一個線程運行在我的ASP.Net後面。在這個線程我把數據在這樣的高速緩存:從其他線程訪問HttpRuntime.Cache
HttpRuntime.Cache.Insert("test", "test", null, DateTime.Today.AddHours(6), Cache.NoSlidingExpiration);
在其他線程(網頁),我第一次檢查,如果緩存中包含的所有數據,然後嘗試從緩存中獲取對象,像這樣:
if (HttpRuntime.Cache.Count > 0) {
var test = (string)HttpRuntime.Cache["test"];
}
編輯:當我試圖做var test = (string)HttpRuntime.Cache["test"];
緩存將走空每次(或將要刪除的對象,沒有測試緩存多個對象),再加上var test
也爲空。這是ofcourse當HttpRuntime.Cache.Count比0
哦更大,它使沒有例外或任何
你能澄清你是說在你的if語句'Cache.Count> 0'中,但有時在'var test =(string)HttpRuntime.Cache [「test」];'它是空的? – 2012-07-24 15:59:55
每次當我試圖做'var test =(string)HttpRuntime.Cache [「test」];'緩存將變空(或將刪除對象,還沒有測試過)加var test '也是空的。當'HttpRuntime.Cache.Count'大於0時,這是當然的 – 2012-07-24 16:57:59