我正在使用C++编写一个程序。在我的代码中,我使用函数CreateProcess运行进程A。进程A启动另一个进程B。B工作一段时间后关闭。B的运行时间取决于各种参数。有时B工作1小时,但有时近2小时。我需要知道B何时结束其工作(即B关闭)。如何检查第二个程序B是否已关闭?换句话说,是否有任何函数(例如在WINAPI中)可检查进程是否处于活动状态?
我正在使用C++编写一个程序。在我的代码中,我使用函数CreateProcess运行进程A。进程A启动另一个进程B。B工作一段时间后关闭。B的运行时间取决于各种参数。有时B工作1小时,但有时近2小时。我需要知道B何时结束其工作(即B关闭)。如何检查第二个程序B是否已关闭?换句话说,是否有任何函数(例如在WINAPI中)可检查进程是否处于活动状态?
请使用WaitForSingleObject()
函数,传入进程句柄。
hProcessB
成为进程_B_ 的句柄,我可以这样做吗?
如果(WaitForSingleObject(hProcessB, INFINITE) == WAIT_OBJECT_0)
{
//然后我的进程B终止了,因此我会做些什么......
} - VladimirINFINITE
,以不指定具体的时间段(超时间隔),而是等待进程_B_的终止。我从MSDN上了解到这一点。 - VladimirWaitForSingleObject()
,但需要检查WAIT_TIMEOUT
。 - hmjd... while (WaitForSingleObject (hProcessB, INFINITE)! = WAIT_OBJECT_0); ...
也就是说,当进程_B_正在运行时,我们执行操作;
。当它终止时,我们继续执行。这样正确吗? - Vladimir