ObjectCache及其工作原理

时间:2014-11-20 09:01:43

标签: c# .net caching

以下c#代码是我所拥有的剥离版本。这基本上使用memory cache缓存数据和AbsoluteExpiration值决定何时清除缓存。一切都按预期工作。但是,最近,我必须在singleton数据结构中包含以下代码。这给我留下了一些问题;

  1. 如何/谁启动缓存清除 缓存过期时的过程?
  2. 如何在多线程场景中工作, 当我的单例对象被并行访问时?

    ObjectCache cache = MemoryCache.Default;
    if (cache.Contains(”UniqueKey”))
    return cache.Get(”UniqueKey”);    
    var dataToCache = GetData();//This is the data that I cache
    var policy = new CacheItemPolicy {AbsoluteExpiration = DateTime.Now.AddMinutes(int.Parse(ConfigurationManager.AppSettings["CacheExpiry"]))};
    cache.Add(”UniqueKey”, dataToCache, policy);
    return dataToCache;
    

0 个答案:

没有答案