我有代码将项目添加到缓存中:
public static void AddTask(string name, string value,int seconds)
{
_onCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
HttpRuntime.Cache.Insert(name, value, null,
DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
CacheItemPriority.NotRemovable, _onCacheRemove);
}
例如,seconds
等于120. 20秒后,我想再次设置到期时间120秒。我怎么能这样做?
PS。 A无法删除此项目并再次添加。
答案 0 :(得分:1)
当您将项目添加到缓存时 - 您可以提供在运行时要从缓存中删除项目时要调用的回调 - 而不是当它已被删除时被调用的当前项目。“ / p>
在该回调中,您可以取消删除过程并延长条目的生命周期。
请参阅this overload of insert以及有关CacheItemUpdateCallback delegate
的文档虽然您已经处理了已删除的事件 - 这个'更新'事件基本上是相同的 - 它只是让您能够在需要时取消过期。