如果我把东西放在c# TLS里,它什么时候会被清理,或者我的工作是清理它?
我是说
a)无论线程如何启动给定的工作( QueueUserWorkItem线程、调用的WCF等),我是否总是从一个空的TLS开始?
b)如果我把昂贵的东西放在TLS中,当线程完成它的工作时,它们会被GC。注我不说“结束”,因为我假设大多数.net线程来自一个或多个池,所以就操作系统而言,它们不一定结束。还是说我的工作就是确保自己不会留下一团糟?
发布于 2012-09-22 06:32:34
TLS条目将在放回到池中的线程中幸存下来。
因此,换句话说,如果您要使用来自System.Threading.ThreadPool类的线程,那么您有责任清理您放入TLS中的所有内容。
https://stackoverflow.com/questions/12538981
复制相似问题