问题: 代码是在多线程环境下,做了简单的Key是否存的判断, 测试代码如下: public class Program { static Dictionary<string, Logger> loggreDic; static object logg ...
问题:
代码是在多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
(#换成@)。