if( CreateProcess(...))
  {
    DWORD ret= WaitForSingleObject(lpProcessInfo->hProcess, 3);
    if(ret!=WAIT_FAILED)
      return 1;
  }
  如何理解?如何做?谢谢!

解决方案 »

  1.   

    更正:
    DWORD ret= WaitForSingleObject(lpProcessInfo->hProcess, INFINITE);
      

  2.   

    if( CreateProcess(...))
      {
        m_bCancel = FALSE;
        DWORD ret;
        while(!m_bCancel)
        {
           ret = WaitForSingleObject(lpProcessInfo->hProcess, 100);
           if(ret != WAIT_TIMEOUT) break;
           DoEvents();
        }
        if(m_bCancel)
        {
            TerminateProcess(lpProcessInfo->hProcess, 0);
        }
    }void OnCancelButton()
    {
       m_bCancel = TRUE;
    }
    void DoEvents()
    {
    MSG msg;
    while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    return;
    }