2010-05-04 48 views

回答

18

HttpContext.Current適用於所有頁面,但不一定適用於所有線程。如果您嘗試在後臺線程,ThreadPool委託,異步調用(使用ASP.NET異步頁面)等內部使用它,您將以NullReferenceException結束。

如果您需要從庫類(即不知道當前請求的類)訪問緩存,則應該使用HttpRuntime.Cache代替。這更可靠,因爲它不依賴於HttpContext

+0

@Aaronnaught - 我不知道除了訪問HttpContext.Current之外有什麼區別,因爲HttpContext.Current.Cache返回HttpRuntime.Cache。 – Thomas 2010-05-04 02:57:18

+0

@Aononaught - 我想你說的是不必依賴於HttpContext.Current其實就是這樣的優勢嗎? – Thomas 2010-05-04 02:58:34

+0

+1,HttpContext.Current應該小心使用。 – kervin 2010-05-04 03:01:58

4

HttpContext.Current.Cache將會出現,但只有當您不能訪問您的上下文成員時纔會使用Current。

也回答第二個問題,是的,緩存對象是應用程序的全局對象。

這裏有一個很好的介紹,以高速緩存...

How to cache in ASP.NET by using Visual C# .NET

和...

Caching with ASP.NET。不要跳過第2部分,「數據緩存」

+7

4GuysFromRolla - 哇,這是從過去的爆炸:-)。自2002年以來,ASP.Net中的緩存是否真的沒有變化? – nashwan 2012-12-17 10:58:40

相關問題