我有一些(不存在的)语言的示例代码:
class Node {
int val;
Lock lock;
}
C#中的Lock
相当于什么?
答案 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){}