Пример #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="bucketCount">number of cache buckets</param>
        /// <param name="bucketMapper">bucket mapper</param>
        /// <param name="comparer">comparer to ensure the equality of 2 values</param>
        /// <param name="cleanupSettings">Cache eviction settings</param>
        public MemoryCache(int bucketCount, KeyMappingDelegate <TKey> bucketMapper, IEqualityComparer <TValue> comparer, CleanupSettings cleanupSettings)
        {
            _bucketCount  = bucketCount;
            _buckets      = new MemoryCacheBucket <TKey, TValue> [_bucketCount];
            _bucketMapper = bucketMapper;
            _comparer     = comparer;

            for (int i = 0; i < _bucketCount; i++)
            {
                _buckets[i] = new MemoryCacheBucket <TKey, TValue>(_comparer);
            }
            _cleanupSettings = cleanupSettings;
            _cleanupTimer    = new Timer(new TimerCallback(CacheCleanup), this, _cleanupSettings.CleanupInterval, _cleanupSettings.CleanupInterval);
        }
Пример #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="comparer">comparer to ensure the equality of 2 values</param>
 /// <param name="cleanupSettings">Cache eviction settings</param>
 public MemoryCache(IEqualityComparer <TValue> comparer, CleanupSettings cleanupSettings)
     : this(64, DefaultKeyMapping, comparer, cleanupSettings)
 {
 }
Пример #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="cleanupSettings">Cache eviction settings</param>
 public MemoryCache(CleanupSettings cleanupSettings)
     : this(new DefaultEqualityComparer <TValue>(), cleanupSettings)
 {
 }