主线程执行到一段时间后,创建一线程A,此时要让线程A等待主线程执行完,才继续执行。怎样主线程执行完去让线程A执行?

解决方案 »

  1.   

    1.创建一线程A时,挂起A:DWORD SuspendThread(
    HANDLE hThread); 2.Wait主线程:DWORD WaitForSingleObject( 
    HANDLE hHandle, 
    DWORD dwMilliseconds ); 3.Resume ADWORD ResumeThread( 
    HANDLE hThread); 
      

  2.   

    这个可以!
    LZ在baidu搜一下“线程同步”,看一下相关内容会有很大帮助的
      

  3.   


    其实还没结束,主线程有个while()循环,线程A就在循环里。我说的结束是循环结束之前。
      

  4.   


    其实还没结束,主线程有个while()循环,线程A就在循环里。我说的结束是循环结束之前。
      

  5.   

    主线程while(TRUE)
    {
    //hTHread is suspended when it has been create
    hThread = CreateThread(..,..,..,..,Create_SUSPEND,..);
    //do some thing..
    ...//resume thread 
    ResumeThread(hThread);//Now hThread is running..
    }
      

  6.   

    用事件对象,子线程WaitForSingleObject等待事件对象signal,初始化事件对象为non-signal,主线程运行一段时间以后就SetEvent
      

  7.   

    弄个事件吧,waitfor这个事件。等主线程结束的时候,SetEvent这个事件。这就是传说中的优雅的退出。
      

  8.   


    如果主线程结束之前,创建了一个子线程,主线程当中调用ExitThread,那么主线程退出,而子线程没有执行结束,Process不会退出吧,应该是等到进程当中的所有线程都结束以后才会退出吧。
      

  9.   

    WaitForSingleObject去监视A线程   建议去看看 windows核心编程 有关线程内容
      

  10.   

    当主线程的任务执行完后,在空闲时间时,使用ResumeThread让子线程运行