小编Bur*_*ICA的帖子

安全地使用'HttpContext.Current.Cache'

Cache在这样的Web服务方法中使用:

var pblDataList = (List<blabla>)HttpContext.Current.Cache.Get("pblDataList");

if (pblDataList == null)
{
    var PBLData = dc.ExecuteQuery<blabla>(@"SELECT blabla");

    pblDataList = PBLData.ToList();

    HttpContext.Current.Cache.Add("pblDataList", pblDataList, null,
        DateTime.Now.Add(new TimeSpan(0, 0, 15)),
        Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
}
Run Code Online (Sandbox Code Playgroud)

但我想知道,这段代码是否是线程安全的?Web服务方法由多个请求者调用.多个请求者可能会尝试检索数据并Cache在缓存为空时同时添加到数据中.

查询需要5到8秒.是否会围绕此代码引入锁定语句以防止任何可能的冲突?(我知道多个查询可以同时运行,但我想确保一次只运行一个查询.)

c# service multithreading caching thread-safety

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

caching ×1

multithreading ×1

service ×1

thread-safety ×1