我在名为helper.getdiscount()
. 此类是 ASP.NET 前端代码,由 UI 页面使用。
在这个方法中,我检查一些数据是否在 ASP.NET 缓存中,然后返回它,否则它会进行服务调用并将结果存储在缓存中,然后返回该值。
考虑到多个线程可能同时访问它,这会是一个问题吗?
if (HttpContext.Current.Cache["GenRebateDiscountPercentage"] == null)
{
IShoppingService service = ServiceFactory.Instance.GetService<IShoppingService>();
rebateDiscountPercentage= service.GetGenRebateDiscountPercentage().Result;
if (rebateDiscountPercentage > 0)
{
HttpContext.Current.Cache.Add("GenRebateDiscountPercentage", rebateDiscountPercentage, null, DateTime.Now.AddDays(1), System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null);
}
}
else
{
decimal.TryParse(HttpContext.Current.Cache["GenRebateDiscountPercentage"].ToString(), out rebateDiscountPercentage);
}
请告知这是否可以或可以使用任何更好的方法。