アプリケーション内でデータをキャッシュするために .NET の MemoryCache クラスを使用しています。ほとんどのアプリケーションのユース ケースで、絶対的および/またはスライド式の有効期限キャッシュ ポリシーが私のアプリケーションに最適です。ただし、特定の期間に、アプリケーションは、アプリケーション データを更新しない長時間実行プロセスを開始する場合があります。通常、このプロセスは非常に長いため、このプロセス中にキャッシュの有効期限が切れて、キャッシュされたデータが掃除されます。これは、データをキャッシュに残しておきたいときです。MemoryCache の期限切れや清掃を一時的に停止する方法はありますか?
すべてのアイテムを破棄して、有効期限ポリシーを 1 つずつ変更することもできますが、キャッシュ内に何百万とは言わないまでも何十万ものアイテムがあることを考えると、それは、パフォーマンスの視点。
アイテムを CacheEntryRemovedCallback のキャッシュに戻すことも考えられますが、それはシステムで作業するのではなく、システムと戦っているように見え、スレッドセーフではありません。
どんなアイデアでも大歓迎です。