我可以(安全地)使用 ADO.NET 数据服务中的 ThreadStatic 属性吗?

发布于 2024-08-11 05:01:52 字数 189 浏览 8 评论 0原文

我想将每线程数据存储在 ADO.NET 数据服务中。在线程特定的静态变量上使用 ThreadStatic 属性是否安全,或者我会遇到问题吗?我担心的是,请求完成且线程终止后,我的 ThreadStatic 变量不会被垃圾收集。

如果有更好的方法来完成我想做的事情,请告诉我。这似乎是最简单的解决方案。

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

I want to store per-thread data in an ADO.NET Data Service. Is it safe to use the ThreadStatic attribute on my thread-specific static variable, or will I run into problems? My concern is that my ThreadStatic variable(s) won't be garbage collected after the request is completed and the thread dies.

If there's a better way to do what I'm trying to do, please let me know. This just seems like the simplest solution.

Any information would be very helpful, thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抚笙 2024-08-18 05:01:52

我发现为每个请求创建的 DataService 对象位于标记有 IsThreadPoolThread = true 的线程上,因此在这种情况下使用 [ThreadStatic] 属性是不合适的,因为来自先前请求的信息可以被后来的请求获得(不可取)。

I've found that the DataService object that's created for each request is on a thread marked with IsThreadPoolThread = true, so using the [ThreadStatic] attribute is not appropriate in this case, as information from previous requests could be available by later ones (not desirable).

昔日梦未散 2024-08-18 05:01:52

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

Any variables which are tagged with ThreadStatic will have the lifetime at least as long as the thread on which they are created. After that Thread terminates they are subject to garbage collection like any other value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文