gpt4 book ai didi

c++ - 创建进程处理

转载 作者:可可西里 更新时间:2023-11-01 11:20:03 24 4
gpt4 key购买 nike

我使用 Windows API CreateProcess 函数。在它的 msdn 手册中,我找到了

If the function succeeds, be sure to call the CloseHandle function to close the hProcess and hThread handles when you are finished with them. Otherwise, when the child process exits, the system cannot clean up the process structures for the child process because the parent process still has open handles to the child process.

那么我应该在哪里做呢?

情况是启动了进程,没有他的生命轨迹。它是否会强制我创建一个线程,在该线程中创建进程,然后线程将等待使用,例如 WaitForSingleObject,直到进程终止,以便可以释放句柄?

最佳答案

您不必等待子进程完成,当不再需要句柄时,您只需CloseHandle

这样做的原因是您可能希望在进程完成后仍保留该进程的句柄。例如,您可能想要检查其返回状态。只要您拥有它的句柄,Windows 就无法对其进行清理。

但如果您不再关心 child 的行为,请关闭 handle 并继续前进。

如果您真的很在意,请调用 WaitForSingleObject 并为它提供您从 CreateProcess 获得的句柄。或者使用回调函数调用 RegisterWaitForSingleObject(再次将进程句柄传递给它),该回调函数将在进程结束时调用。

关于c++ - 创建进程处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16071095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com