//if (m_b)   //Thread.Sleep(1000);

解决方案 »

  1.   

    为什么去掉//if (m_b)
       //Thread.Sleep(1000);Thread.Sleep释放lock么?我加这句是为了不让第一个线程一下执行完,执行开始后将cpu转给第二个线程
      

  2.   

    因为"lock(this)" 锁的是两个对象!
    类cls增加域
    private static Object obj=new Object();把lock(this)改为 lock(obj)就能达到你说要的目标
      

  3.   


    是不是CPU是按一定时间切换线程的。可是为什么LOCK没用呢????
    还是请高手解惑吧!!!!!!!!!!!!
      

  4.   

    12wywy()说的完全正确。
    lock(this)不行,因为对于thread1和thread2,this是两个不同的东西,lock(this)根本没有synchronize。
    12wywy()的解决办法也没错,另外也可以lock(typeof(cls));