我用下面的代码开启了一个线程AfxBeginThread(FunThread,this);其中FunThread函数如下:UINT FunThread(LPVOID   pParam)我怎么让这个线程结束之后才执行下面的程序呢?

解决方案 »

  1.   

    CWinThread *mythread = AfxBeginThread(FunThread,this);
    WaitForSingleObject(mythread->m_hThread,INFINITE);
      

  2.   


    AfxBeginThread(FunThread,this);Fun1();
    Fun2();意思就是依次往下面执行
      

  3.   

    ls,我们可以调用WaitForSingleObject(handle,time)等待指定线程结束,那么下面的程序不是可以执行了吗。
      

  4.   

    我使用WaitForSingleObject(FunThread,INFINITE)发现在FunThread函数还没有执行完的时候,就执行下面的函数了
      

  5.   

    WaitForSingleObject参数错误,是线程句柄,不是线程入口函数要像4楼那样调用
      

  6.   

    CWinThread *mythread = AfxBeginThread(FunThread,this); 
    WaitForSingleObject(mythread->m_hThread,INFINITE);
    等线程执行结束,他会接下去作下面的事情,线程不结束不会往下走。多个线程自然没有任何的问题
      

  7.   

    AfxBeginThread(FunThread1,this);
    AfxBeginThread(FunThread2,this);
    AfxBeginThread(FunThread3,this);这样的代码是不是FunThread1,FunThread2,FunThread3三个线程同时执行呀?CWinThread *mythread1 = AfxBeginThread(FunThread1,this); 
    WaitForSingleObject(mythread1->m_hThread,INFINITE); CWinThread *mythread2 = AfxBeginThread(FunThread2,this); 
    WaitForSingleObject(mythread2->m_hThread,INFINITE); CWinThread *mythread3 = AfxBeginThread(FunThread3,this); 
    WaitForSingleObject(mythread3->m_hThread,INFINITE); 
    这样的代码是不是FunThread1执行完毕之后才执行FunThread2,等FunThread2执行完之后执行FunThread3线程?