C# 中的私有静态变量和线程安全

本文关键字:变量 线程 安全 静态 | 更新日期: 2023-09-27 18:33:49

我的一位同事在一个多线程 c# 应用程序中编写了以下代码......

public class1
{
     private static partialClass var1 = new partialNonStaticClass();
     public static method1()
     {
        //do something with var1
     }
}

尽管 var1 是私有的并且设置为非静态分部类,但它是静态的这一事实意味着它可以由所有线程共享。
此外,不会在 var1 上执行锁定。因此,var1 不是线程安全的。

只是想有人验证我是否正确。

C# 中的私有静态变量和线程安全

,它是静态的这一事实意味着它可以由所有线程共享。

这是真的。 它可能被多个线程使用。

此外,不会在 var1 上执行锁定。因此,var1 不是线程安全的。

这可能是真的,也可能不是真的。 如果partialNonStaticClass本身是线程安全的,则可能不需要锁定。