如何得知进程结束
扬帆886 2009-06-08 10:38:39 我刚接触多线程编程不久,有个问题请教下:
在一个timer里用EnumProcesses 得到所有进程pid,根据pid OpenProcess得到进程HANDLE,保存到一个HANDLE数组里面,起一个子线程用来监视HANDLE数组里的所有进程,当有进程结束时我想得到通知。我的做法如下:
在 while循环中用WaitForMultipleObjects等待该HANDLE数组,当等待成功某进程后CloseHandle该句柄。但再次wait时会失败,因为CloseHandle已将结束进程HANDLE置空,参数不匹配.当等待成功某进程后不调用CloseHandle关闭该句柄则下次wait函数返回的还是上次等待成功的HANDLE。所以貌似行不通,我也不想用GetExitCodeProcess定时轮寻进程状态的方法,因为有多个进程。哪位指点下还有其它什么方法可以实现不?系统在进程结束时会有什么消息通知么?