我有一个很好的小类构建,充当缓存.每个项目都有一个到期TimeSpan或DateTime.每次尝试访问缓存中的项目时,都会检查项目的到期时间,如果项目已过期,则会从缓存中删除该项目,并且不会返回任何内容.
这对于经常访问的对象来说非常好,但是如果一个项目放在缓存中并且从未再次访问过,那么它永远不会被删除,即使它已经过期了.
从缓存中过期这些项目的好方法是什么?
我是否应该有一个后台线程无限枚举缓存中的每个项目以检查它是否已过期?
最好的代码是没有代码.请改用ASP.NET缓存.您可以在任何应用程序中将其引用为System.Web.HttpRuntime.Cache,而不仅仅是Web应用程序.