.net - 静态类是线程安全的吗

标签 .net c#-4.0 thread-safety static-members

我浏览过 msdn,上面写着所有静态类都是线程安全的。好吧,那篇文章是针对 1.1 版的...

http://msdn.microsoft.com/en-us/library/d11h6832(v=vs.71).aspx

.NET Framework 中的所有公共(public)静态成员(方法、属性、字段和事件)都支持多线程环境中的并发访问。因此,可以从两个线程同时调用任何 .NET Framework 静态成员,而不会遇到争用条件、死锁或崩溃。

最佳答案

这是说所有静态成员在 .NET 框架内 以线程安全的方式设计。这意味着 Microsoft 为 .NET Framework 开发的所有静态方法/字段/属性。如果您想使用 .NET Framework 本身提供的静态成员,那么您可以假设它是线程安全的并照此使用。尽管如此,我仍然会怀疑该声明的有效性,并假设非线程安全,除非另有证明。

您编写的任何类(静态或非静态)你自己 并且具有静态成员可能是线程安全的,也可能不是线程安全的,具体取决于您编写它们的方式。它不会因为它是一个静态方法/类而神奇地是线程安全的。

还要看看这个以了解什么是静态成员以及什么是静态类:

Static Classes and Static Members

关于.net - 静态类是线程安全的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5839974/

相关文章:

c# - 为什么 WPF 使用 HTML/HEX 颜色?

c#-4.0 - 用于访问文本文件的存储库模式

.NET ReaderWriterLockSlim 问题

c# - 网站和移动应用程序的成员(member)系统

c# - 解析 .NET 应用程序使用的库路径

c# - 在安装程序中删除临时文件夹有什么技巧?

java - 将 Java 服务转换为 .NET 4.0 服务 (WCF)

c++ - Qt UIThreadWidget

python - 使用 python 中的线程从无限循环中读取结果