首页 文章

关闭CreateProcess生成的子流程

提问于
浏览
0

我正在使用CreateProcess来运行我的进程/应用程序 . 目的是运行它,做某事,等待一些指示,并关闭它(使用TerminateProcess) .

我注意到这个应用程序/进程创建了子进程 . 此外,当终止创建的进程时,子进程 do not 终止,并且仍然保留一段时间 .

我想询问是否有一个选项以某种方式杀死主进程的所有子进程 . 它会导致问题,因为当我再次执行CreateProcess时,会有以前进程中的剩余部分,我认为它们会导致一些问题 .

我非常感谢你的帮助!

2 回答

  • 4

    使用CreateProcess创建进程时,您将获得 LPPROCESS_INFORMATION -pointer . 它包含进程句柄 . 您需要手动关闭进程,因为没有Linux / Unix中的进程层次结构 .

    对于CreateProcess,请参见here,对于 PROCESS_INFORMATION -structure,请参见here .

  • 1

    使用Windows Job Objects . 工作就像过程组;一旦作业负责人(您的初始流程)终止,操作系统将负责终止作业中的所有流程 . 如果该领导者崩溃,这甚至会起作用 .

相关问题