C#緩存absoluteExpiration、slidingExpiration兩個參數的疑惑

看了不少資料終於搞明白cache中absoluteExpiration,slidingExpiration這兩個參數的含義。

absoluteExpiration:用於設置絕對過時時間,它表示只要時間一到就過時,因此類型爲System.DateTime,當給這個參數設置了一個時間時,slidingExpiration參數的值就只能爲Cache.NoSlidingExpiration,不然出錯;

slidingExpiration:用於設置可調過時時間,它表示當離最後訪問超過某個時間段後就過時,因此類型爲System.TimeSpan,當給這個參數設置了一個時間段時,absoluteExpiration的值就只能爲Cache.NoAbsoluteExpiration,不然出錯;

     兩個使用實例

Cache.Add("name", content, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(10), System.Web.Caching.CacheItemPriority.Normal, null);

Cache.Add("name", content, null, DateTime.Now.AddMinutes(10), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);app

 

 

  //
        // 摘要:
        //     Inserts an object into the System.Web.Caching.Cache object together with dependencies,
        //     expiration policies, and a delegate that you can use to notify the application
        //     before the item is removed from the cache.
        //
        // 參數:
        //   key:
        //     The cache key that is used to reference the object.
        //
        //   value:
        //     The object to insert into the cache.
        //
        //   dependencies:
        //     The file or cache key dependencies for the item. When any dependency changes,
        //     the object becomes invalid and is removed from the cache. If there are no dependencies,
        //     this parameter contains null.
        //
        //   absoluteExpiration:
        //     The time at which the inserted object expires and is removed from the cache.
        //     To avoid possible issues with local time such as changes from standard time to
        //     daylight saving time, use System.DateTime.UtcNow instead of System.DateTime.Now
        //     for this parameter value. If you are using absolute expiration, the slidingExpiration
        //     parameter must be set to System.Web.Caching.Cache.NoSlidingExpiration.
        //
        //   slidingExpiration:
        //     The interval between the time that the cached object was last accessed and the
        //     time at which that object expires. If this value is the equivalent of 20 minutes,
        //     the object will expire and be removed from the cache 20 minutes after it was
        //     last accessed. If you are using sliding expiration, the absoluteExpiration parameter
        //     must be set to System.Web.Caching.Cache.NoAbsoluteExpiration.
        //
        //   onUpdateCallback:
        //     A delegate that will be called before the object is removed from the cache. You
        //     can use this to update the cached item and ensure that it is not removed from
        //     the cache.
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     The key, value, or onUpdateCallback parameter is null.
        //
        //   T:System.ArgumentOutOfRangeException:
        //     You set the slidingExpiration parameter to less than TimeSpan.Zero or the equivalent
        //     of more than one year.
        //
        //   T:System.ArgumentException:
        //     The absoluteExpiration and slidingExpiration parameters are both set for the
        //     item you are trying to add to the Cache.-or-The dependencies parameter is null,
        //     and the absoluteExpiration parameter is set to System.Web.Caching.Cache.NoAbsoluteExpiration,
        //     and the slidingExpiration parameter is set to System.Web.Caching.Cache.NoSlidingExpiration.
        public void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemUpdateCallback onUpdateCallback);less

相關文章
相關標籤/搜索