在Windows程序中等待某进程退出,假设需等待的进程id已经获取到
void WaitForProcessExit(DWORD dwProcessId)
{
HANDLE handle = ::OpenProcess(PROCESS_ALL_ACCESS, 0, dwProcessId);
if (handle)//有效进程返回非NULL
{
::WaitForSingleObject(handle, INFINITE);
}
}
退出前一直为阻塞状态,所以一般在线程中执行,如子进程在父进程退出后自动退出