C# Lock语句参数中对象的用途

C# Lock语句参数中对象的用途,c#,thread-safety,locking,C#,Thread Safety,Locking,锁参数中object的用途是什么。以下是一个例子: public class TestThreading { private System.Object lockThis = new System.Object(); public void Process() { lock (lockThis) { // Access thread-sensitive resources.

锁参数中object的用途是什么。以下是一个例子:

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

    public void Process()  
    {  

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

} 

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

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


文档提供了比
lock
语句文档更好的对象使用说明。

您需要一些变量来跟踪哪个线程拥有锁以及锁的输入频率。锁定状态。对象似乎不适合做所有这些事情,但它是有能力的。许多程序员认为.NET框架应该有一个专用的类型来处理这类变量,以使其更清晰。您可以创建一个:public-class-LockState:object{}。谢谢。若我将“Thread.CurrentThread.ManagedThreadId”传递到lock语句中,这是否有意义呢?那个将是灾难性的。你最好研究一下,否则你会被活活吃掉的。