静态类是否安全

sla*_*dhe 14 .net static-members thread-safety c#-4.0

我已经通过msdn编写了所有静态类都是线程安全的.那篇文章适用于1.1版......

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

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

Can*_*cer 13

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

你写的(静态的,或者不是)任何类自己和具有静态成员可能还是取决于你如何写他们可能不是线程安全的.它不会神奇地是线程安全的,因为它是一个静态方法/类.

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

静态类和静态成员


Guf*_*ffa 11

不,它并没有说静态类是线程安全的,它说公共静态成员是线程安全的.

例如,对于静态方法,这意味着它们仅使用您作为参数发送的数据,或者也是线程安全的其他静态成员.

您不必同步调用静态方法,除非需要保护您发送到方法中的数据.