首页 > 代码库 > 【ASP.NET】多线程操作全局变量时候的处理。
【ASP.NET】多线程操作全局变量时候的处理。
对于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; }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。