У меня есть хороший класс, который работает как кеш. Каждый элемент имеет срок действия TimeSpan или DateTime. Каждый раз, когда предпринимается попытка получить доступ к элементу в кэше, проверяется срок действия элемента, а если срок его действия истекает, элемент удаляется из кэша и ничего не возвращается.
Это отлично подходит для объектов, к которым часто обращаются, но если элемент помещается в кеш и никогда не используется снова, он никогда не удаляется, даже если срок его действия истек.
Какая хорошая методология для удаления таких элементов из кэша?
Должен ли я иметь фоновый поток, бесконечно перечисляющий каждый элемент в кэше, чтобы проверить, не истек ли он?