【发布时间】:2011-01-05 16:51:46
【问题描述】:
我发现了“ThreadStaticAttribute”,对此我有很多疑问: 我以前所有的线程相关的静态信息,都被实现为一个静态字典,其中 TKey 是 Thread,当我想访问它时,我使用了 Thread.CurrentThread 并且有效。但这需要维护,因为如果一个线程死了,我必须从字典中删除相应的条目。而且我还需要考虑线程安全以及许多其他问题。
通过使用 ThreadStaticAttribute,所有这些问题似乎都解决了,但我需要确定这一点。我的问题是:我是否需要在线程死亡之前以某种方式删除由“ThreadStaticAttribute”标记的字段持有的实例?该字段的信息在哪里保存?它在Thread对象的实例中,或者类似的东西,所以当它不再使用时,垃圾收集器会自动丢弃它?有性能惩罚吗?有哪些?是否比我之前使用的 Keyed 集合更快?
请,我需要澄清一下“ThreadStaticAttribute”的工作原理。
谢谢。
【问题讨论】:
标签: c# multithreading static