线程.Thread.CurrentThread是否总是返回相同的实例?

5

我能否使用 Dictionary<Thread, object> 存储线程数据,并使用 Thread.CurrentThread 检索它?

2个回答

10
您可以这么做,但您还需要同步(因为Dictionary<,>不是线程安全的)。
替代方案: 当然,使用字典而不是ThreadStaticAttibute的好处之一是,您不需要太担心垃圾回收或黑魔法问题。如果您使用的是.NET 4,则ThreadLocal<T>可能是最佳选择。

3

如果您想访问其他线程的数据,那么是可以的,但是您应该先了解ThreadStaticAttribute或ThreadLocal。如果线程只需要查看自己的数据,则使用这些更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接