2

如果我把东西放在 c# TLS 什么时候被清理,还是我的工作是清理它?

我是说

a) 无论线程如何启动给定的工作(一个 QueueUserWorkItem 线程,调用 WCF,...),我是否总是从一个空的 TLS 开始

b)如果我将昂贵的东西放入 TLS 中,它们会在线程完成其工作时被 GC 处理。请注意,我没有说“结束”,因为我假设大多数 .net 线程来自一个或多个池,因此就操作系统而言,它们不一定会结束。或者我的工作是始终“最终”自己确保我不会留下一团糟

4

1 回答 1

1

TLS 条目将在线程被放回池中后继续存在。

因此,换句话说,如果您要使用 System.Threading.ThreadPool 类中的线程,则您有责任清理放入 TLS 中的所有内容。

于 2012-09-21T22:32:34.470 回答