微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 什么是神秘的ThreadSafeObjectProvider

正在浏览我的一个项目,偶然发现了我以前从未见过的MyWebExtentions文件中的以下代码(和类).

Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.ServerComputer)

''' <summary>
''' Returns @R_799_4045@ion about the host computer.
''' </summary>

<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance","CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.ServerComputer
    Get
        Return s_Computer.GetInstance()
    End Get
End Property

所以我试着查看对象资源管理器,它没有出现,搜索MSDN,没有,尝试stackoverflow也没有.最后我确实找到了this文章,它确实解释了它允许你创建一个“线程安全,特定于线程的存储”,但没有解释,为什么或如何.

那么有人可以请你解释这个类的目的是什么,它是如何工作的以及在非设计器生成代码中是否有适当的使用场景?

解决方法

当您希望特定变量是线程静态但需要为调用方法的每个上下文创建线程静态变量时.你会用这个.
这为每个上下文保留线程静态变量,其中将某些东西声明为线程静态将仅保留它创建它的线程.

这是我的理解,老实说这可能完全是假的,但我是如何解释它的,并作为我为何在WCF工作一段时间的原因的一个例子.

但是说真的,如果你必须这样做,那么这是我最好的回答.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐