问题:


我可以锁定此代码吗? IsMouseInside属性是否是线程安全的?
使用copy变量有意义吗?


PS:UI线程更新IsMouseInside。另一个线程有时会读取其值

    public Class Test
    {

    private readonly object isMouseInsideLocker = new object();
    private bool isMouseInside = false;

    public bool IsMouseInside
    {
        get
        {
            bool copy;
            lock (this.isMouseInsideLocker)
                copy = this.isMouseInside;
            return copy;
        }
        set
        {
            lock (this.isMouseInsideLocker)
                this.isMouseInside = value;
        }
    }

    private void lblProcessTime_MouseEnter(object sender, EventArgs e)
    {
        IsMouseInside = true;
    }

    private void lblProcessTime_MouseLeave(object sender, EventArgs e)
    {
        IsMouseInside = false;
    }
}

最佳答案

不,你不能。
没有。只是return isMouseInside;

关于c# - 锁定在一个简单的属性内-会死锁吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7381764/

10-09 04:34