我使用Windows CreateProcess函数。在msdn手册中,我发现
如果函数成功,一定要调用CloseHandle函数来关闭hProcess和hThread句柄。否则,当子进程退出时,系统无法清除子进程的进程结构,因为父进程仍然打开子进程的句柄。
那我该在哪儿做这个?
情况是,这一过程已经开始,没有他的生活轨迹。它是否迫使我创建一个线程,在那里创建进程,然后使用WaitForSingleObject等线程等待,直到进程死亡,以便释放句柄?
发布于 2013-04-17 22:08:23
您不必等待子进程完成,您只需在CloseHandle ( You )不再需要句柄时进行。
这样做的原因是,即使在流程完成之后,您也可能希望保留该流程的句柄。例如,您可能希望检查它的返回状态。只要你有它的句柄,Windows就不能在它之后清理。
但如果你不再关心孩子做了什么,关上手柄,继续前进。
如果你真的在乎,打电话给WaitForSingleObject,给它你从CreateProcess那里得到的句柄。或者用回调函数调用RegisterWaitForSingleObject (再次将其传递给进程句柄),该函数将在流程结束时调用。
https://stackoverflow.com/questions/16071095
复制相似问题