更改线程池线程的文化是否会在返回池时影响它?

如果我设置线程池线程的CurrentCulture ,当线程完成执行并返回到线程池时会发生什么? 它是否将其CurrentCulture重置为默认值(无论可能意味着什么),还是会保留我在其上设置的文化?

我希望框架将线程重置为默认状态以防止这种情况,但是找不到任何这种效果的文档。 我找到的最接近的是来自ThreadPool的MSDN文档:

当线程池重用线程时,它不会清除线程本地存储中或使用ThreadStaticAttribute属性标记的字段中的数据。 因此,通过一个方法放置在线程本地存储中的数据可以暴露给由同一线程池线程执行的任何其他方法。

这似乎表明线程在返回时没有重置。

我已经尝试了一些示例代码来尝试对此进行测试,看起来确实重置了文化,但我不相信我正在测试这种行为,因为我认为我只使用了ThreadPool的一小部分线程,并且所以不能确定我正在测试一个已经拥有它的文化集的线程。

我不会依赖ThreadPool重置信息,特别是因为你引用的文字。

如果您担心“更改”线程池的文化,我会确保在您的线程任务完成时重置它。 这是一项非常简单的任务。

我不相信当前的线程池会这样做,但即使它这样做 ,也不能安全地假设.NET 4 +的ThreadPool实现不会改变。