c# – 如何多线程“跨层”具有相关ID的单例而不锁定?
发布时间:2020-12-15 20:55:46 所属栏目:百科 来源:网络整理
导读:因此,我们使用具有相关ID的公共状态上下文单例进行集中式日志记录.目的是在整个过程中跟踪id并关联不同的层. 状态上下文由多个dll和多个用户访问. 多线程发挥作用时遇到困难: 进程1已被用户1触发 相关ID设置为{1} DLL A访问状态上下文并获取相关ID {1} 在流
因此,我们使用具有相关ID的公共状态上下文单例进行集中式日志记录.目的是在整个过程中跟踪id并关联不同的层.
状态上下文由多个dll和多个用户访问. 多线程发挥作用时遇到困难: >进程1已被用户1触发 我们如何解决这个问题? 我们认为锁定不是我们的解决方案吗?还有其他想法吗? 这是一张图 (S)->[ CorrelationID {get;set} ] ^ ^ ^ U1 <--> | | | O U2 <--> [DLLA] <--> [DLLB] <--> [DLLC] <--> | | U3 <--> {Web} <--> {Domain} <-> {Data Access} <--> {DB} (<-- Process / Thread --> ) {} =可能的DLL示例 每个用户的进程应该有1个相关ID 解决方法
可能是,ThreadLocal< T>?
https://msdn.microsoft.com/en-us/library/dd642243%28v=vs.100%29.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |