用C#锁定一个对象?

时间:2011-08-30 22:07:42

标签: c# locking

我有一些(不存在的)语言的示例代码:

class Node {
int val;
Lock lock;
}

C#中的Lock相当于什么?

2 个答案:

答案 0 :(得分:2)

在C#中,任何对象都可以与线程锁定一起使用。

所以你的代码看起来像:

class Node {
int val;
Object lockObject = new Object();
}

在您的代码中,您可以锁定对象,如:

void SomeFunction()
{
    lock(lockObject)
    {
         // Do sometthing that needs thread protection
    }
}

如果需要进程间锁定对象,则可以使用信号量。请参阅this

答案 1 :(得分:0)

c#有一个lock关键字。您可以创建一个名为lobj的类型对象或类似对象,然后使用

object lObj = new object();
lock(lObj){}