Thread.CurrentThread总是返回相同的实例吗?

时间:2011-04-01 13:43:58

标签: c# .net multithreading

我可以让Dictionary<Thread, object>存储线程数据并使用Thread.CurrentThread来检索它吗?

2 个答案:

答案 0 :(得分:10)

你可以,但你也需要同步(因为Dictionary<,>不是线程安全的。)

备选方案:

当然,使用字典超过ThreadStaticAttibute的一个好处是你不需要担心垃圾,或者确实是黑魔法。如果您使用的是.NET 4,ThreadLocal<T>可能是您的最佳选择。

答案 1 :(得分:3)

是的,你可以,如果你想访问其他线程的数据,但你应该首先看一下ThreadStaticAttribute或ThreadLocal,如果线程只需要查看自己的数据就好了。