码迷,mamicode.com
首页 > 编程语言 > 详细

【ASP.NET】多线程操作全局变量时候的处理。

时间:2014-07-08 00:54:31      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   数据   问题   

  对于ASP.NET本身来讲,是基于IIS应用程序池,有些时候会碰到多用户需要操作同一个全局变量的问题,那么就会有多线程并发访问的问题。在这里仅介绍使用lock来对用户的操作进行加锁保证变量在同一时刻仅仅有一个线程进行访问,从而保证数据一致性。

     示例代码如下:

public class BUAPrivilegeService
    {
        IAuthorizationService authService = ServiceFactory.Instance().GetAuthorizationService();
        List<LPFunction> lpFunctionList = new List<LPFunction>();
        private static readonly Object RuntimeConfigLock = new Object();

        /// <summary>
        /// 查询用户可访问的所有菜单集合
        /// </summary>
        /// <param name="userUid">用户帐号</param>
        /// <param name="应用程序标识Code">appCode</param>
        /// <returns></returns>
        public List<LPFunction> QueryAllPrivilege(string userUid,string appCode)
        {
            //线程唯一性操作,保证其他线程调用时候获取到的ApplicationCode不会被篡改。
            lock (RuntimeConfigLock)
            {
                RuntimeConfig.Instance.ApplicationCode = appCode;
                QueryBUAPrivilegeAllList(userUid,string.Empty);

                RuntimeConfig.Instance.ApplicationCode = ConstDim.AppCode_Business;
            }
            return lpFunctionList;
        }
}

 

【ASP.NET】多线程操作全局变量时候的处理。,布布扣,bubuko.com

【ASP.NET】多线程操作全局变量时候的处理。

标签:style   blog   color   使用   数据   问题   

原文地址:http://www.cnblogs.com/BruceGoGo/p/3830483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!