长时间监听 - 第一次来电。我希望得到一些建议。我一直在阅读有关.net的缓存 - 无论是与System.Web.Caching和System.Runtime.Caching。我想知道我可以获得什么额外的好处,与简单地创建一个带锁定的静态变量。我现在的(头脑简单的)高速缓存方法是这样的:为什么要使用System.Runtime.Caching或System.Web.Caching Vs静态变量?
public class Cache
{
private static List<Category> _allCategories;
private static readonly object _lockObject = new object();
public static List<Category> AllCategories
{
get
{
lock (_lockObject)
{
if (_allCategories == null)
{
_allCategories = //DB CALL TO POPULATE
}
}
return _allCategories;
}
}
}
除了到期(我不希望这个过期)我很茫然,看看有什么的使用内置的缓存的益处是。
也许对不适用于我的更复杂的缓存方案有好处 - 或者我只是错过了某些东西(不会是第一次)。
那么,如果我想要一个永不过期的缓存,那么使用缓存有什么优势?不是静态变量这样做吗?
我认为你的锁块应该包含if语句。否则,您可能会遇到不止一次从db加载的情况。 – row1 2011-05-13 01:52:52
你是对的 - 对不起 - 有点草率写一个简单的例子。我在原来的问题中改变了它。 – sfsr 2011-05-13 01:57:04