lock 的范围 ,仍会改变 i 的值

版权声明:转载请注明转载地址,谢谢! https://blog.csdn.net/softuse/article/details/83211400
 private static void Timer_ChangeBoolValue(object sender, ElapsedEventArgs e)
        {
            lock (_lock)
            {
                if (i % 2 == 0)
                {
                    Test.isCallBox = false;
                }
                else
                {
                    Test.isCallBox = true;
                }
                i++;

                Test.PrintText();
            }
        }

与 
 private static void Timer_ChangeBoolValue(object sender, ElapsedEventArgs e)
        {

            if (i % 2 == 0)
            {
                Test.isCallBox = false;
            }
            else
            {
                Test.isCallBox = true;
            }
            i++;
            lock (_lock)
            {
                Test.PrintText();
            }
        }

锁的效果是不一样的, 下面的仍会改变 i 的值

猜你喜欢

转载自blog.csdn.net/softuse/article/details/83211400