예제 #1
0
        private static void ScanForExpiredItems(MemoryCache cache)
        {
            List <CacheEntry> expiredEntries = new List <CacheEntry>();

            cache._entryLock.EnterReadLock();
            try
            {
                var now = cache._clock.UtcNow;
                foreach (var entry in cache._entries.Values)
                {
                    if (entry.CheckExpired(now))
                    {
                        expiredEntries.Add(entry);
                    }
                }
            }
            finally
            {
                cache._entryLock.ExitReadLock();
            }

            cache.RemoveEntries(expiredEntries);
        }
예제 #2
0
        private static void ScanForExpiredItems(MemoryCache cache)
        {
            List<CacheEntry> expiredEntries = new List<CacheEntry>();

            cache._entryLock.EnterReadLock();
            try
            {
                var now = cache._clock.UtcNow;
                foreach (var entry in cache._entries.Values)
                {
                    if (entry.CheckExpired(now))
                    {
                        expiredEntries.Add(entry);
                    }
                }
            }
            finally
            {
                cache._entryLock.ExitReadLock();
            }

            cache.RemoveEntries(expiredEntries);
        }