Когда MemoryCache очищается в веб-приложении .Net?

Я использую MemoryCache в приложении MVC и веб-API для кэширования объектов. Я инициализирую кеш в моем Global.asax.cs.

IE:

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

Однако мне интересно, когда этот кеш освобождается? Когда я перезапущу свое приложение? Это при условии, что у меня, конечно, не хватает памяти.


person Henley    schedule 15.06.2013    source источник
comment
Краткий ответ: когда это необходимо.   -  person Henk Holterman    schedule 15.06.2013
comment
@HenkHolterman Какой длинный ответ? :)   -  person Henley    schedule 15.06.2013
comment
Как вы инициализируете свой кеш?   -  person Preston Guillot    schedule 15.06.2013
comment
@PrestonGuillot Обновил мой вопрос. Я просто создаю экземпляр MemoryCache и добавляю в него новые элементы.   -  person Henley    schedule 15.06.2013


Ответы (1)


Если ваш вопрос о том, когда cacheItem освободится, это будет зависеть от cachePolicy.

Однако, если ваш вопрос заключается в том, когда освобождается объект MemoryCache. Ответ Never, потому что он задерживается внутренними обратными вызовами таймера. Вы должны удалить объект, чтобы освободить его.

MemoryCache довольно тяжелый объект, и вы должны создавать свой собственный экземпляр только тогда, когда он вам действительно нужен. В общем случае используйте экземпляр MemoryCache.Default.

person YK1    schedule 15.06.2013