4
_cache.Insert(cacheKey, userList, null,
 Cache.NoAbsoluteExpiration,
 new TimeSpan(0, 15, 0),
 CacheItemPriority.High, null);

上記のコードは3分後にキャッシュの有効期限が切れていないようです。userListオブジェクトは更新されたデータベースからデータをプルしますが、キャッシュは15分後に有効期限が切れません。

なにが問題ですか?

4

2 に答える 2

5

を使用して、キャッシュが期限切れにならないように明示的に設定していCache.NoAbsoluteExpirationます。Cache.NoSlidingExpiration代わりに使用したい:

このフィールドを使用すると、定数値がゼロslidingExpirationのフィールドにパラメータが 設定されます。キャッシュされた項目は、またはメソッドの呼び出しに関連付けられTimeSpan.Zeroたパラメーターに従って期限切れになります。absoluteExpirationInsertAdd

于 2012-10-10T19:36:21.650 に答える
3

スライド有効期限パラメーターに 15 分を渡しています: http://msdn.microsoft.com/en-us/library/05kd8d77.aspx

挿入されたオブジェクトが最後にアクセスされてから、そのオブジェクトの有効期限が切れるまでの間隔。この値が 20 分に相当する場合、オブジェクトは最後にアクセスされてから 20 分後に期限切れになり、キャッシュから削除されます。スライド有効期限を使用している場合、absoluteExpiration パラメーターは NoAbsoluteExpiration である必要があります。

キャッシュされたオブジェクトが 15 分ごとよりも頻繁にアクセスされる場合、有効期限が切れることはありません。

_cache.Insert(
        cacheKey, 
        userList, 
        null, 
        new TimeSpan(0, 15, 0),
        Cache.NoSlidingExpiration,
        CacheItemPriority.High, 
        null);

アイテムは 15 分で期限切れになります

于 2012-10-10T19:38:13.407 に答える