我想在程序初始化时,运行两个函数(用于监控)。这 2 个函数都有个死循环。
BOOL CNetDlg::OnInitDialog()
{
   net1();  // 监控功能
   net2();  //监控功能
}
  现在走到net1()时,由于有个死循环了,就走不到net2了! 咱解决啊???

解决方案 »

  1.   

    既然知道函数里面有死循环,解决办法就是修改掉死循环,至少该在适当的时候break
      

  2.   

    方法1:  用多線程....將死循環放到線程中去做
    方法2:  開兩個時鍾...將你的個监控功能函數分別放到兩個時鐘里去做,-當然,這樣就不用死循環了,只要监控功能部份,根據需要設置時鐘的循環時間..
            SetTimer(1/*時鐘1*/,1000/*時鐘循環時間1000ms=1s*/,NULL);
            SetTimer(2/*時鐘2*/,1000/*時鐘循環時間1000ms=1s*/,NULL);
            在時鐘函數中
            void CXXXDlg::OnTimer(UINT nIDEvent) 
           { 
    switch( nIDEvent )
    {
              case 1: //時鐘1
                ..........需要的监控功能
               break;
              case 2: //時鐘2
                 ..........需要的监控功能
               break;
              }
            CDialog::OnTimer(nIDEvent);
           
            KillTimer(1);  //程序結束時殺掉時鐘
    KillTimer(2);