本帖最后由 d52787790 于 2010-05-28 10:25:34 编辑

解决方案 »

  1.   

    是不是创建的进程不能自动关闭?那个 Handle 不代表进程是否已经关闭, CloseHandle 也不能关闭进程。可以用 GetExitCodeProcess 来判断进程是否已经关闭
      

  2.   


    CloseHandle(pi.hProcess);不是关进程的,它只是把进程的句柄给关了
    关进程是
    TerminateProcess
      

  3.   


    肯定是会自动关闭的,因为只有到连接数不够时才会出现进程不退出的情况。平时连的少的话是正常的。CloseHandle关闭句柄难道就没用? TerminateProcess不太安全吧?
      

  4.   

    CloseHandle关闭句柄难道就没用?没用
      

  5.   

    可是我一直这样,进程也都关了啊。 CloseHandle减少句柄计数吧?
      

  6.   

    CloseHandle还需要在TerminateProcess吗?  
      

  7.   

    DWORD dwResult;
    GetExitCodeThread(pi.hProcess, &dwResult);
    if(dwRsult == STILL_ACTIVE)//如果说明还在运行,再关一次
    {
      TerminateProcess(pi.hProcess); 
    }
      

  8.   

    要不你就直接WaitForSingleObject(pi.hProcess, INFINITE)一直等待