你的位置:首页 > 软件开发 > ASP.net > 多线程环境下非安全Dictionary引起的已添加了具有相同键的项问题

多线程环境下非安全Dictionary引起的已添加了具有相同键的项问题

发布时间:2015-10-03 20:00:08
问题: 代码是在多线程环境下,做了简单的Key是否存的判断, 测试代码如下: public class Program { static Dictionary<string, Logger> loggreDic; static object logg ...

多线程环境下非安全Dictionary引起的已添加了具有相同键的项问题

问题:

代码是在多get='_blank'>线程环境下,做了简单的Key是否存的判断, 测试代码如下:

public class Program  {    static Dictionary<string, Logger> loggreDic;    static object loggerDicLocker = new object();    public static void Main()    {      loggreDic = new Dictionary<string, Logger>();      for (int i = 0; i < 100; i++)      {        ThreadPool.QueueUserWorkItem(o =>        {          try          {            var logger = GetLogger("AAA");          }          catch (Exception)          {            Console.WriteLine(string.Format("弟{0}个线程出现问题", o));          }        }, i);      }      Console.ReadKey();    }    static Logger GetLogger(string cmdId)    {      if (!loggreDic.ContainsKey(cmdId))      {        loggreDic.Add(cmdId, LogManager.GetLogger(string.Format("ChinaPnrApi.{0}", cmdId)));      }      return loggreDic[cmdId];    }  }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:多线程环境下非安全Dictionary引起的已添加了具有相同键的项问题

关键词:线程

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。