【发布时间】:2012-07-11 00:57:36
【问题描述】:
我到处读到,如果 Add 方法已经存在则会失败,但它会抛出异常还是静默失败?
我正在编写一个不应该存在的多线程 Web 应用程序,如果我覆盖缓存会导致问题,因此我无法使用 Insert 方法。
这是我能做的吗:
try
{
HttpContext.Current.Cache.Add("notifications", notifications, null,
System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromHours(8),
System.Web.Caching.CacheItemPriority.High, null);
}
catch
{
//do whatever if notifications already exist
}
感谢您的任何回答:)
【问题讨论】:
-
亲自尝试一下还不够简单吗?
-
如果我理解正确的话。我认为您应该首先检查是否已经存在同名的密钥。如果存在密钥,则不要添加它。来自 msdn “如果具有相同键参数的项已存储在缓存中,则调用此方法将失败。要使用相同键参数覆盖现有缓存项,请使用插入方法。”