【发布时间】:2016-08-28 19:26:54
【问题描述】:
我目前使用Threadlocal 来保存当前用户的 ID,以便根据每个用户的 Web 请求在整个应用程序中使用。在较低的环境中,我无法访问 HttpContext,但希望访问静态 UserId 而不将其作为参数传递到任何地方。
最近,我一直在通过async/await.添加并行操作这不再能保证我在每个Task.中都有正确的值
我在.Net 4.6 中研究并发现了AsyncLocal,但目前仅限于.Net 4.5.1。作为替代方案,CallContext.LogicalGet/SetData() 是否能够实现我想要的?
【问题讨论】:
-
最好传递那个参数。你的设计过于复杂了。
标签: c# async-await task-parallel-library thread-local