Example #1
0
        /// <summary>
        /// 缓存项递增代数。若指定 <paramref name="checkExpired"/> 则会在递增之前进行过期检查。
        /// </summary>
        /// <param name="item">缓存项。</param>
        /// <param name="checkExpired">是否查检过期。</param>
        /// <returns>如果过期,则返回 null。</returns>
        public CacheItem Update(CacheItem item, bool checkExpired = true)
        {
            if (checkExpired && item.HasExpired())
            {
                return(null);
            }

            item.Gen = Interlocked.Increment(ref current);

            return(item);
        }
Example #2
0
        /// <summary>
        /// 缓存项递增代数。若指定 <paramref name="checkExpired"/> 则会在递增之前进行过期检查。
        /// </summary>
        /// <param name="item">缓存项。</param>
        /// <param name="checkExpired">是否查检过期。</param>
        /// <returns>如果过期,则返回 null。</returns>
        public CacheItem Update(CacheItem item, bool checkExpired = true)
        {
            if (checkExpired && item.HasExpired())
            {
                return(null);
            }

            if (item.Gen != -1)
            {
                if (item.Gen < MAX_GEN_LIMIT)
                {
                    item.Gen++;
                }
                else
                {
                    item.Gen = 0;
                }
            }

            CurrentMaxGen = Math.Max(CurrentMaxGen, item.Gen);

            return(item);
        }