我有代码可以将项目添加到缓存:
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无法删除此项目并再次添加。
当您将项目添加到缓存时,您可以提供一个回调,当运行时将要从缓存中删除该项目时将调用该回调,而不是当前的回调,当它已经被删除时将被调用。
在该回调中,您可以取消删除过程并延长条目的生存期。
请参阅此插入重载和有关CacheItemUpdateCallback委托的文档
尽管您已经在处理删除的事件-这个"更新"的事件基本上是一样的-但它只是让您能够在需要时取消过期。