Я использую System.Runtime.Caching.MemoryCache для хранения элементов, срок действия которых никогда не истекает. Однако иногда мне нужна возможность очистить весь кеш. Как мне это сделать?
Я задал здесь аналогичный вопрос о том, могу ли я перечислить кэш, но это плохая идея, поскольку во время перечисления его необходимо синхронизировать.
Я пробовал использовать .Trim(100), но это вообще не работает.
Я пытался получить список всех ключей через Linq, но потом Я вернулся к тому, с чего начал, потому что удаление элементов один за другим может легко привести к гонкам.
Я решил сохранить все ключи, а затем создать файл . Remove(key) для каждого из них, но там тоже подразумевается состояние гонки, поэтому мне придется заблокировать доступ к списку ключей, и все снова запутается.
Я тогда подумал, что смогу позвонить .Dispose() для всего кеша, но я не уверен, что это лучший подход из-за способа его реализации.
Использование ChangeMonitors не подходит для моего проекта и излишне сложен для такого тривиального требования.
Итак, как мне полностью очистить кеш?
Подробнее здесь: https://stackoverflow.com/questions/804 ... emorycache
Как очистить System.Runtime.Caching.MemoryCache ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Будет ли System.Runtime.Caching.MemoryCache удалять элементы IDisposable при выселении?
Anonymous » » в форуме C# - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Будет ли System.Runtime.Caching.MemoryCache удалять элементы IDisposable при выселении?
Anonymous » » в форуме C# - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-