【发布时间】:2013-04-17 22:06:46
【问题描述】:
我使用 Windows API CreateProcess 函数。在它的msdn手册中,我发现了
如果函数成功,请务必在完成后调用 CloseHandle 函数来关闭 hProcess 和 hThread 句柄。否则,当子进程退出时,系统无法为子进程清理进程结构,因为父进程仍有打开子进程的句柄。
那么我应该在哪里做呢?
情况是进程开始了,没有他的生活轨迹。它是否强制我创建一个线程,将在其中创建进程,然后线程将等待使用,例如WaitForSingleObject,直到进程死亡,因此可以释放句柄?
【问题讨论】:
-
否 - 如果函数返回成功,只需立即关闭句柄并继续您愉快的方式。
-
如果你要保持“跟踪他的生活”,那么你需要保持手柄直到你完成跟踪。一定要避免在这个线程上烧毁,RegisterWaitForSingleObject() 可以让这个更便宜。