我目前想到的办法是定义一个全局变量来控制线程中是否继续检测,在程序切换界面时将该变量至为false,停止检测退出线程。但小弟不到萬不得已的情况下不喜欢用全局变量,不知道还有没有其他办法。

解决方案 »

  1.   

    信号量比较好,  不占用CPU时间
      

  2.   

    额 pthread_create失败返回-1是什么情况?
      

  3.   

    设置 一个 volatile BOOL m_bExit 变量
      

  4.   

    bool g_bWork = false;
    1.来到这个界面时:
      if(g_bWork == false)
      {
           g_bWork = true;
           ::CreateThread or begintherad(,,,MyThreadFunc);
    }2.线程函数体:
        MyThreadFunc()
        {
             while(g_bWork)
            {            //检测感应器代码
            }        
        }3.离开此界面时:
        g_bWork = false;//线程就自动退出了行吧?