相关疑难解决方法(0)

实例构造函数设置一个静态成员,它是否是线程安全的?

我正在重新考虑一些代码,并且想知道lock在实例构造函数中使用a .

public class MyClass {

    private static Int32 counter = 0;
    private Int32 myCount;

    public MyClass() {

        lock(this) {
            counter++;
            myCount = counter;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请确认

  1. 实例构造函数是线程安全的.
  2. lock语句阻止访问该代码块,而不是静态"计数器"成员.

如果原始程序员的意图是让每个实例知道它的'count',我将如何同步访问'counter'成员以确保另一个线程不是新的a MyClass并在此设置之前更改计数计数?

仅供参考 - 此课程不是单身.实例必须只知道它们的编号.

.net c# multithreading thread-safety

5
推荐指数
2
解决办法
3823
查看次数

标签 统计

.net ×1

c# ×1

multithreading ×1

thread-safety ×1