Как очистить System.Runtime.Caching.MemoryCacheC#

Место общения программистов C#
Ответить
Anonymous
 Как очистить System.Runtime.Caching.MemoryCache

Сообщение Anonymous »

Я использую System.Runtime.Caching.MemoryCache для хранения элементов, срок действия которых никогда не истекает. Однако иногда мне нужна возможность очистить весь кеш. Как мне это сделать?

Я задал здесь аналогичный вопрос о том, могу ли я перечислить кэш, но это плохая идея, поскольку во время перечисления его необходимо синхронизировать.

Я пробовал использовать .Trim(100), но это вообще не работает.

Я пытался получить список всех ключей через Linq, но потом Я вернулся к тому, с чего начал, потому что удаление элементов один за другим может легко привести к гонкам.

Я решил сохранить все ключи, а затем создать файл . Remove(key) для каждого из них, но там тоже подразумевается состояние гонки, поэтому мне придется заблокировать доступ к списку ключей, и все снова запутается.

Я тогда подумал, что смогу позвонить .Dispose() для всего кеша, но я не уверен, что это лучший подход из-за способа его реализации.

Использование ChangeMonitors не подходит для моего проекта и излишне сложен для такого тривиального требования.

Итак, как мне полностью очистить кеш?

Подробнее здесь: https://stackoverflow.com/questions/804 ... emorycache
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»