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