视图中 
Handle pThread=AfxBeginThread(SleepFunc,this);
if(WaitForSingleObject(d,INFINITE)==WAIT_OBJECT_0)
{MessageBox("...."));}
子线程
UINT SleepFunc
{Sleep(1000);return 0;}
什么都没有发生啊  不可思议啊  快崩溃了啊

解决方案 »

  1.   

    写错了  第一句是Handle d=AfxBeginThread(SleepFunc,this);
      

  2.   

    if(WaitForSingleObject(d,INFINITE)==WAIT_OBJECT_0)
    d哪里来的
      

  3.   

    AfxBeginThread的返回值不是HANDLE,是CWinThread*
    CWinThread*d=AfxBeginThread(SleepFunc,this);
    if(WaitForSingleObject(d->m_hThread,INFINITE)==WAIT_OBJECT_0)
    {MessageBox("...."));}
      

  4.   

    太感谢了  果断给分 
    其实我代码写的是 
    CWinThread* pThread=AfxBeginThread(SleepFunc,this);
    HANDLE d=pThread;
    if(WaitForSingleObject(d,INFINITE)==WAIT_OBJECT_0)
    终于明白这个错误了..  
    再次感谢
      

  5.   

    http://topic.csdn.net/u/20110306/22/c986d26e-05c4-497e-9caa-68d2145fbf87.html
    我是按照这个里面写的难道一楼的是误人子弟??
    pThread=AfxBeginThread(MulThreadSearchTrgl1,this);
    qThread=AfxBeginThread(MulThreadSearchTrgl2,this);
    rThread=AfxBeginThread(MulThreadSearchTrgl3,this); //开辟三个子线程HANDLE hThread[3];
    hThread[0] = pThread;
    hThread[1] = qThread;
    hThread[2] = rThread;
    WaitForMultipleObjects(3,hThread,TRUE,INFINITE)
      

  6.   

    CWinThread* pThread;
    CWinThread* qThread;
    CWinThread* rThread;pThread=AfxBeginThread(MulThreadSearchTrgl1,this);
    qThread=AfxBeginThread(MulThreadSearchTrgl2,this);
    rThread=AfxBeginThread(MulThreadSearchTrgl3,this); //开辟三个子线程人家一楼写的不是的对的吗?
      

  7.   

    d如果是事件,而且没有信号,将永远不会到这儿来,找一个地方,SetEvent(d),肯定会过入这个线程。