MemoryCache何时在.Net Web应用程序中清除?

时间:2013-06-15 17:15:25

标签: c# asp.net .net caching memorycache

我在MVC和Web API应用程序中使用MemoryCache来缓存对象。我正在我的Global.asax.cs初始化缓存。

IE:

MemoryCache c = new MemoryCache(cacheNamespace);
var cacheItem = new CacheItem(key, value);
c.Add(cacheItem, cachePolicy);

但是,我想知道这个缓存什么时候被释放?当我重启我的应用程序?这假设我当然没有用完记忆。

1 个答案:

答案 0 :(得分:3)

如果您的问题是cacheItem被释放的话 - 它将取决于cachePolicy

但是,如果你的问题是MemoryCache对象被释放的话。答案是Never,因为内部计时器回调会阻止它。你必须处置对象以释放它。

MemoryCache是非常重的对象,你应该只在你真正需要的时候创建自己的实例。一般情况下使用MemoryCache.Default实例。