3

我想将每个线程数据存储在ADO.NET数据服务中。在我的线程特定的静态变量上使用ThreadStatic属性是否安全,还是会遇到问题?我担心的是我的ThreadStatic变量在请求完成并且线程死亡后不会被垃圾回收。我可以(安全地)使用ADO.NET数据服务中的ThreadStatic属性吗?

如果有更好的方法来做我想做的事情,请让我知道。这似乎是最简单的解决方案。

任何信息会非常有帮助,谢谢!

回答

3

我发现为每个请求创建的DataService对象位于标记为IsThreadPoolThread = true的线程中,因此在这种情况下使用[ThreadStatic]属性并不合适,因为之前的请求中的信息可能会在稍后使用(不是希望的)。

0

任何使用ThreadStatic标记的变量的生命周期至少与创建它们的线程一样长。在Thread终止之后,它们会像其他任何值一样被垃圾收集。

相关问题