我在MVC和Web API应用程序中使用MemoryCache来缓存对象。我正在我的Global.asax.cs初始化缓存。
IE:
MemoryCache c = new MemoryCache(cacheNamespace);
var cacheItem = new CacheItem(key, value);
c.Add(cacheItem, cachePolicy);
但是,我想知道这个缓存什么时候被释放?当我重启我的应用程序?这假设我当然没有用完记忆。
答案 0 :(得分:3)
如果您的问题是cacheItem
被释放的话 - 它将取决于cachePolicy
。
但是,如果你的问题是MemoryCache
对象被释放的话。答案是Never
,因为内部计时器回调会阻止它。你必须处置对象以释放它。
MemoryCache
是非常重的对象,你应该只在你真正需要的时候创建自己的实例。一般情况下使用MemoryCache.Default
实例。