从发送的参数锁定

本文关键字:参数 锁定 | 更新日期: 2023-09-27 18:25:39

将MyClass作为参数发送时,是否可以从ThreadRunner.RunThread锁定MyClass?

MyClass{
    private static object locker = new object();
    public void RunThreads{
        for(int i=0;i<8;i++){
            ThreadRunner.RunThread(locker);
        }
    }
}

这是犹太洁食吗,还是我应该在MyClass中有RunThread的逻辑,这样我就不必传递locker对象了?

从发送的参数锁定

编辑:我更正了const,请停止否决!

由于locker是静态的,因此最好将其声明为:

public static readonly object locker = new object();

因为锁对象无论如何都应该是常量,并且在线程代码中使用它作为:

MyClass.locker

这样你就不需要通过它。