我正在使用CreateProcess来运行我的进程/应用程序 . 目的是运行它,做某事,等待一些指示,并关闭它(使用TerminateProcess) .
我注意到这个应用程序/进程创建了子进程 . 此外,当终止创建的进程时,子进程 do not 终止,并且仍然保留一段时间 .
我想询问是否有一个选项以某种方式杀死主进程的所有子进程 . 它会导致问题,因为当我再次执行CreateProcess时,会有以前进程中的剩余部分,我认为它们会导致一些问题 .
我非常感谢你的帮助!
使用CreateProcess创建进程时,您将获得 LPPROCESS_INFORMATION -pointer . 它包含进程句柄 . 您需要手动关闭进程,因为没有Linux / Unix中的进程层次结构 .
对于CreateProcess,请参见here,对于 PROCESS_INFORMATION -structure,请参见here .
使用Windows Job Objects . 工作就像过程组;一旦作业负责人(您的初始流程)终止,操作系统将负责终止作业中的所有流程 . 如果该领导者崩溃,这甚至会起作用 .
2 回答
使用CreateProcess创建进程时,您将获得 LPPROCESS_INFORMATION -pointer . 它包含进程句柄 . 您需要手动关闭进程,因为没有Linux / Unix中的进程层次结构 .
对于CreateProcess,请参见here,对于 PROCESS_INFORMATION -structure,请参见here .
使用Windows Job Objects . 工作就像过程组;一旦作业负责人(您的初始流程)终止,操作系统将负责终止作业中的所有流程 . 如果该领导者崩溃,这甚至会起作用 .