我使用Windows API的CreateProcess
函数。在它的msdn手册中,我发现
那我应该在哪里做呢?
情况是这个过程开始了,没有他的生活轨迹。它是否迫使我创建一个线程,将在该线程中创建进程,然后该线程将使用WaitForSingleObject
等进行等待,直到该进程死亡,以便可以释放这些句柄?
最佳答案
您不必等待子进程完成,只需在不再需要该句柄的时使用CloseHandle
。
这样做的原因是,即使在过程完成之后,您仍可能希望保留该过程的句柄。例如,您可能要检查其返回状态。只要您有处理能力,Windows便无法对其进行清理。
但是,如果您不再关心 child 的行为,请合上手柄并继续前进。
如果您确实需要,请调用WaitForSingleObject
并为其提供从CreateProcess
获得的句柄。或使用回调函数调用RegisterWaitForSingleObject
(再次将其传递给进程句柄),该回调函数将在进程结束时被调用。