【问题标题】:When does MemoryCache get cleared in .Net web app?.Net Web 应用程序中的 MemoryCache 何时被清除?
【发布时间】:2013-06-15 17:15:24
【问题描述】:

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

IE:

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

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

【问题讨论】:

  • 简短回答:需要时。
  • @HenkHolterman 长答案是什么? :)
  • 你是如何初始化缓存的?
  • @PrestonGuillot 更新了我的问题。我只是在实例化 MemoryCache,并向其中添加新项目。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2017-05-10
    • 2017-02-10
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多