环境vs2008
定义了两个线程w1,w2。都start了。
在w1和w2内控制两个bool变量threadEnd1、threadEnd2(全局变量),开始置为false,结束置为true。
在调用线程的方法内判断:
 while (true)
{
   if (threadEnd1 && threadEnd2) break;
}
在调试环境下没问题,两个线程结束时,循环结束。但在应用部署后,程序一直等待,循环不出来!
请问这是怎么回事???

解决方案 »

  1.   

    逻辑上有错调试不该过。
    Join()的用法请详示,谢谢!
    我是按x86生成部署的,不知有影响不?
    手机回复。谢。
      

  2.   

    逻辑上有错调试不该过。
    Join()的用法请详示,谢谢!
    我是按x86生成部署的,不知有影响不?
    手机回复。谢。
      

  3.   

    volatile bool threadEnd1,threadEnd2;
      

  4.   

    试验了一下,lijun84的volatile顶用!!调试和安装环境都可以!!谢谢。w1.join()和w2.join()在调试环境可以,但安装部署后还是要等w1完成后w2才接着干!?w1.Start(tp1);//tp1,tp2是参数
    w2.Start(tp2);
    w1.Join();
    MessageBox.Show("w1 ok");
    w2.Join();
    MessageBox.Show("w2 ok);不管是Any Cpu生成,还是x86生成。