我知道
here有一个非常相似的问题,但我希望能够更好的解读。如果HttpContext真的在幕后使用HttpRuntime.Cache,为什么要使用HttpContext.Cache而不是HttpRuntime.Cache?
在文章Simulate a Windows Service using ASP.NET to run scheduled jobs中,Omar使用HttpContext来存储他的缓存项,但是当Jeff Atwood实现了here时,他选择使用HttpRuntime。显然,在这种特殊情况下,这是有道理的,因为您不需要做一个Web请求来将缓存项目添加回HttpContext。
然而,我正在寻找一些关于什么时候使用一个而不是另一个的好的指针。
解决方法
它最终是相同的缓存,只有HttpContext.Current有时可以为null(当不在Web上下文中,或在Web上下文中但尚未构造时)。你可以安全地使用HttpRuntime.Cache。