请问在主线程里如何等待子线程的结束?
例如我在button的单击事件中,创建一线程执行某函数,
thread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)addFun,(void*)1,0,NULL);
那么我在窗口中如何等待该线程结束?

解决方案 »

  1.   

    要么是主线程WaitForSingleObject()子线程
    要么子线程退出给主线程发送PostThreadMessage消息
      

  2.   

    WaitForSingleObject  还可以设置超时等待时间
      

  3.   

    主线程创建线程同时创建一个结构体, 将指针作为参数传入线程
    线程中修改这个结构体向主线程汇报自己的状态比如结构体为
    {
      BOOL bRunning; //线程是否结束
      int nIoBytes;  //已操作的IO字节数
    }线程中修改, 主线程对数据进行获取和判断
      

  4.   

    在主线程等待的话就用MsgWaitForMultipleObjects,将线程对象加入到等待的对象数组中,同时还不影响接收消息