如果我把它放在c#TLS中什么时候清理它,或者我的工作是清理它?
我的意思是
a)无论线程如何启动给定的工作(QueueUserWorkItem线程,WCF调用,......),我总是以空TLS开始。
b)如果我在TLS中放入昂贵的东西,那么当线程完成其工作时,它们将被GC。注意我不说'结束',因为我假设大多数.net线程来自一个或多个池,因此就操作系统而言它们并不一定会结束。或者我的工作是始终“终于”自己确保我不会在我身后留下一团糟
答案 0 :(得分:1)
TLS条目将在一个线程放回池中后继续存在。
因此,换句话说,如果您打算使用System.Threading.ThreadPool类中的线程,那么您有责任清理放在TLS中的所有内容。