Я не уверен, какой тип кэша вы используете, но по определению вещи могут исчезнуть из cache . Кэширование используется для ускорения доступа к данным, а не для сохранения данных.
Для сохранения данных вы должны использовать хранилище данных. Хранилище данных может быть основано на sql (например, mysql) или даже на значении ключа (no-sql, например, membase). В этом случае они вам пригодятся.
Также кажется, что вы используете busy-wait . Это тоже не идеально .
Кстати, 01-01-0001 - это DateTime.MinValue .
Редактировать:
еще одна мысль # 1: вы также можете сохранять вещи в памяти вашей машины, например, используя статическую переменную. Он не будет ни сохранен, ни распространен, но может удовлетворить ваши потребности.
еще одна мысль # 2: я не думаю, что вы должны помещать вещи в кеш и следить за тем, чтобы они были там через 5 минут. Другой способ использовать механизм кэширования будет следующим:
- Получить запрос на данные.
- Проверьте, находится ли он в кеше.
- Если так - верните его.
- Если нет - получить данные, кэшировать их, вернуть.