我可以让Dictionary<Thread, object>
存储线程数据并使用Thread.CurrentThread来检索它吗?
答案 0 :(得分:10)
你可以,但你也需要同步(因为Dictionary<,>
不是线程安全的。)
备选方案:
ThreadStaticAttribute
ThreadLocal<T>
(.NET 4)当然,使用字典超过ThreadStaticAttibute
的一个好处是你不需要担心垃圾,或者确实是黑魔法。如果您使用的是.NET 4,ThreadLocal<T>
可能是您的最佳选择。
答案 1 :(得分:3)
是的,你可以,如果你想访问其他线程的数据,但你应该首先看一下ThreadStaticAttribute或ThreadLocal,如果线程只需要查看自己的数据就好了。