我有一个服务,我想使用MemoryCache,但是,我的一个要求是我需要能够手动清除所述MemoryCache,而不停止服务。如何清除正在运行的Windows服务的System.Runtime.Caching.MemoryCache而不停止服务?
目前我们正在使用从企业库中的CacheManager(使用独立存储区,所以我认为这是在内存中,然后转储在需要时提交),我们通过删除文件手动清除缓存。任何关于如何使用新的缓存库来做类似的事情的想法?
谢谢!
我有一个服务,我想使用MemoryCache,但是,我的一个要求是我需要能够手动清除所述MemoryCache,而不停止服务。如何清除正在运行的Windows服务的System.Runtime.Caching.MemoryCache而不停止服务?
目前我们正在使用从企业库中的CacheManager(使用独立存储区,所以我认为这是在内存中,然后转储在需要时提交),我们通过删除文件手动清除缓存。任何关于如何使用新的缓存库来做类似的事情的想法?
谢谢!
这听起来像使用企业库您的当前缓存有文件系统的依赖。您可以通过将HostFileChangeMonitor与每个缓存项目关联来对MemoryCache执行相同的操作。当受监控的文件在磁盘上发生变化时,缓存项目将被清除。
这是不可能清除您的服务之外缓存,因为它绑定到AppDomain中。您需要自行实施清除缓存的入口点。
之后,只需Dispose内存缓存,并创建一个新的。