我可以在C#中的某一行锁定(某物)吗?

Way*_*oss 3 c# syntax multithreading locking

下面的_otherThing字段是否会被锁保护?

class ThreadSafeThing
{
    private readonly object _sync = new object();

    private SomeOtherThing _otherThing;

    public SomeOtherThing OtherThing { get { lock(_sync) return _otherThing; } }

    public void UpdateOtherThing(SomeOtherThing otherThing)
    {
        lock(_sync) _otherThing = otherThing;
    }
}
Run Code Online (Sandbox Code Playgroud)

Bri*_*sen 9

是.

这与锁无关.C#程序使用语句表示.使用{}将多个语句组合为一个块.可以在允许单个语句的上下文中使用块.请参阅C#语言规范第1.5节.