Lock 语句参数中对象的目的

cem*_*mbo 5 c# locking thread-safety

Lock 参数中 object 的目的是什么。下面是一个例子:

public class TestThreading  
{  
    private System.Object lockThis = new System.Object();  

    public void Process()  
    {  

        lock (lockThis)  
        {  
            // Access thread-sensitive resources.  
        }  
    }  

} 
Run Code Online (Sandbox Code Playgroud)

...这个'lockThis'对象是否将任何东西传递到Lock体中。为什么我不能在参数中使用没有对象的 Lock 语句。

Joh*_*ner 3

传递给lock语句的对象可以被认为是锁的标识符。对于任何对象,在任何给定时间只有一个线程可以获得该对象的独占锁。通过允许将对象传递给 lock 语句,您可以对关键代码的不同区域使用不同的对象。

Monitor.Enter文档比语句文档更好地描述了对象的使用lock