1

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

IE:

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

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

4

1 回答 1

3

如果您的问题是何时cacheItem释放 - 这将取决于cachePolicy.

但是,如果您的问题是MemoryCache对象何时被释放。答案是Never因为它被内部计时器回调阻止。您必须 Dispose 对象才能释放它。

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

于 2013-06-15T18:19:21.697 回答