我有一個服務,我想使用MemoryCache,但是,我的一個要求是我需要能夠手動清除所述MemoryCache,而不停止服務。如何清除正在運行的Windows服務的System.Runtime.Caching.MemoryCache而不停止服務?
目前我們正在使用從企業庫中的CacheManager(使用獨立存儲區,所以我認爲這是在內存中,然後轉儲在需要時提交),我們通過刪除文件手動清除緩存。任何關於如何使用新的緩存庫來做類似的事情的想法?
謝謝!
我有一個服務,我想使用MemoryCache,但是,我的一個要求是我需要能夠手動清除所述MemoryCache,而不停止服務。如何清除正在運行的Windows服務的System.Runtime.Caching.MemoryCache而不停止服務?
目前我們正在使用從企業庫中的CacheManager(使用獨立存儲區,所以我認爲這是在內存中,然後轉儲在需要時提交),我們通過刪除文件手動清除緩存。任何關於如何使用新的緩存庫來做類似的事情的想法?
謝謝!
這聽起來像使用企業庫您的當前緩存有文件系統的依賴。您可以通過將HostFileChangeMonitor與每個緩存項目關聯來對MemoryCache執行相同的操作。當受監控的文件在磁盤上發生變化時,緩存項目將被清除。
這是不可能清除您的服務之外緩存,因爲它綁定到AppDomain中。您需要自行實施清除緩存的入口點。
之後,只需Dispose內存緩存,並創建一個新的。