Lock参数中对象的用途是什么。这是一个例子:
public class TestThreading
{
private System.Object lockThis = new System.Object();
public void Process()
{
lock (lockThis)
{
// Access thread-sensitive resources.
}
}
}
...这个'lockThis'对象将任何东西传递给Lock体。为什么我不能在参数中使用没有对象的Lock语句。
答案 0 :(得分:3)
传递给lock语句的对象可以被认为是锁的标识符。对于任何对象,在任何给定时间只有一个线程可以获得该对象的独占锁。通过允许将对象传递给lock语句,您可以将不同的对象用于关键代码的不同区域。
与lock
语句文档相比,Monitor.Enter
文档提供了对象使用的更好描述。