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

时间:2013-10-02 19:06:25

标签: c# variables static private

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

public class1
{
     private static partialClass var1 = new partialNonStaticClass();

     public static method1()
     {
        //do something with var1
     }
}

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

只是想让某人确认我是对的。

1 个答案:

答案 0 :(得分:4)

  

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

这是事实。 可能可能被多个线程使用。

  

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

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