C# 在.Net web app中,MemoryCache何时被清除?
我在MVC和Web API应用程序中使用MemoryCache来缓存对象。我正在初始化Global.asax.cs中的缓存 即:C# 在.Net web app中,MemoryCache何时被清除?,c#,asp.net,.net,caching,memorycache,C#,Asp.net,.net,Caching,Memorycache,我在MVC和Web API应用程序中使用MemoryCache来缓存对象。我正在初始化Global.asax.cs中的缓存 即: 但是,我想知道这个缓存什么时候被释放?当我重新启动我的应用程序时?这当然是假设我没有耗尽内存。如果您的问题是cacheItem何时被释放-这将取决于cachePolicy 然而,如果您的问题是MemoryCache对象何时被释放。答案是决不,因为它被内部计时器回调延迟。您必须处理该对象才能释放它 MemoryCache是一个非常繁重的对象,您应该只在真正需要时创建自己
但是,我想知道这个缓存什么时候被释放?当我重新启动我的应用程序时?这当然是假设我没有耗尽内存。如果您的问题是
cacheItem
何时被释放-这将取决于cachePolicy
然而,如果您的问题是MemoryCache
对象何时被释放。答案是决不
,因为它被内部计时器回调延迟。您必须处理该对象才能释放它
MemoryCache
是一个非常繁重的对象,您应该只在真正需要时创建自己的实例。一般情况下,使用MemoryCache.Default
实例。简短回答:需要时。@HenkHolterman详细回答是什么?:)你是如何初始化缓存的?@PrestonGuillot更新了我的问题。我只是实例化MemoryCache,并向其中添加新项。
MemoryCache c = new MemoryCache(cacheNamespace);
var cacheItem = new CacheItem(key, value);
c.Add(cacheItem, cachePolicy);