当前位置: 代码迷 >> C# >> Lock有关问题
  详细解决方案

Lock有关问题

热度:91   发布时间:2016-05-05 04:58:56.0
Lock问题

class Program
    {
        static void Main(string[] args)
        {

            A a = new A();
            a.Test(15);
            Console.ReadLine();
        }
    }



    public class A
    {
        private object obj = new object();
        public void Test(int i)
        {
            lock (obj)
            {
                if (i > 10)
                {
                    i--;
                    Test(i);//11,12,13,14
                }
                else
                {
                    Console.WriteLine(i);
                }
            }
        }
    }

直接上代码,当i走到 Console.WriteLine(i); 为10的时候,debug 又跑到Test(i);//11,12,13,14 ,不清楚是什么问题,求教了!
------解决思路----------------------
你一开始传入的是15,然后判断如果大于10就--然后调用自身,
第一次递归:14
第二次:13
第三次:12
第四次:11
第五次:10,这里走入else,然后退出
回到4,退出
回到3,退出
回到2,退出
回到1,退出
结束
  相关解决方案