Я использую класс .NET MemoryCache для кэширования данных в моем приложении. В большинстве случаев использования приложения политики кеширования с абсолютным и / или скользящим сроком действия отлично подходят для моего приложения. Однако в определенные периоды времени приложение может запускать длительный процесс, который не обновляет данные приложения. Процесс обычно настолько долгий, что срок действия кеша истекает и во время этого процесса очищаются кэшированные данные, и именно тогда я действительно хочу, чтобы данные оставались в кеше. Есть ли способ временно приостановить истечение срока действия и / или очистку MemoryCache?
Я мог бы выбросить все свои элементы и изменить политику истечения срока один за другим, но я боюсь, что, учитывая, что у меня есть сотни тысяч, если не миллионы, элементов в кеше, они не будут работать с перспектива производительности.
Можно было бы поместить элемент обратно в кеш в CacheEntryRemovedCallback, но похоже, что вы боретесь с системой, а не работаете с ней, и это не будет потокобезопасным.
Любые идеи были бы хорошы.