让我们说我们想要实现线程同步,我们使用锁定.但是,如果问的问题是锁定对象或引用,我们如何回答这个问题?
private static readonly object doSomethingLock = new object();
public static void DoSomething (SomeObject o)
{
lock(doSomethingLock)
{
o.Update();
// etc....
}
}
Run Code Online (Sandbox Code Playgroud)
锁在对象上.您的代码与此代码等效:
private static readonly object doSomethingLock = new object();
public static void DoSomething (SomeObject o)
{
var sameObject = doSomethingLock;
lock(sameObject)
{
o.Update();
// etc....
}
}
Run Code Online (Sandbox Code Playgroud)