首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateProcess处理

CreateProcess处理
EN

Stack Overflow用户
提问于 2013-04-17 22:06:46
回答 1查看 1.3K关注 0票数 1

我使用Windows CreateProcess函数。在msdn手册中,我发现

如果函数成功,一定要调用CloseHandle函数来关闭hProcess和hThread句柄。否则,当子进程退出时,系统无法清除子进程的进程结构,因为父进程仍然打开子进程的句柄。

那我该在哪儿做这个?

情况是,这一过程已经开始,没有他的生活轨迹。它是否迫使我创建一个线程,在那里创建进程,然后使用WaitForSingleObject等线程等待,直到进程死亡,以便释放句柄?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-17 22:08:23

您不必等待子进程完成,您只需在CloseHandle ( You )不再需要句柄时进行。

这样做的原因是,即使在流程完成之后,您也可能希望保留该流程的句柄。例如,您可能希望检查它的返回状态。只要你有它的句柄,Windows就不能在它之后清理。

但如果你不再关心孩子做了什么,关上手柄,继续前进。

如果你真的在乎,打电话给WaitForSingleObject,给它你从CreateProcess那里得到的句柄。或者用回调函数调用RegisterWaitForSingleObject (再次将其传递给进程句柄),该函数将在流程结束时调用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16071095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档