private static CacheItemPolicy GetPolicy(int idx, MemoryCache cache) { string name = (idx % 10 == 0) ? "NamedData" : null; CacheItemPolicy cip = new CacheItemPolicy(); cip.AbsoluteExpiration = System.DateTimeOffset.UtcNow.AddHours(1); var monitor = new SignaledChangeMonitor(idx.ToString(), name); cip.ChangeMonitors.Add(monitor); return(cip); }
public static void TestCache() { MemoryCache cache = MemoryCache.Default; int size = (int)1e6; Start(); for (int idx = 0; idx < size; idx++) { cache.Add(idx.ToString(), "Value" + idx.ToString(), GetPolicy(idx, cache)); } long prevCnt = cache.GetCount(); Stop($"Added {prevCnt} items"); Start(); SignaledChangeMonitor.Signal("NamedData"); Stop($"Removed {prevCnt - cache.GetCount()} entries"); prevCnt = cache.GetCount(); Start(); SignaledChangeMonitor.Signal(); Stop($"Removed {prevCnt - cache.GetCount()} entries"); }