私は何も見つけられなかったので、私が望むことが可能であるとは信じていません。キャッシュ変数にアクセスするたびに、キャッシュ変数のスライド有効期限をリセットしたいと思います。
public class MyCache
{
public static object CachedItem
{
get
{
string key = "item11"; // users share the object at this key
object o = Cache[key];
//re-set the timer janky way
//triggers callback, which I dont want
o = (o == null) ? new object() : Cache.Remove(key);
Cache.Add(key, o, null, Cache.NoAbs..., new TimeSpan(0,5,0), High, Removed);
return o;
}
}
private static void Removed(string key, object value, CacheItemRemovedReason reason)
{
// audit MySql table
// no good because Cache.Remove is getting called manually a lot.
}
}
実際には、キャッシュアイテムはチャットルーム内のメッセージのリストです。メッセージが追加されたら、チャットルームをもう少し長く「生き続ける」ようにします。別の方法も歓迎します。