0

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

我注意到的是这个应用程序/进程创建了子进程。另外,当终止创建的进程时,子进程不会终止,仍然会保留一段时间。

我想问是否可以选择以某种方式用主进程杀死所有子进程。它会导致问题,因为当我再次执行CreateProcess时,之前的进程会产生剩余物,我认为它们会导致一些问题。

我真的很感谢你的帮助!

4

2 回答 2

4

使用 Windows作业对象。作业就像流程组;一旦作业负责人(您的初始进程)终止,操作系统将负责终止作业中的所有进程。即使过程领导者崩溃,这也有效。

于 2013-02-19T11:37:35.643 回答
1

当您使用CreateProcess创建进程时,您将获得一个LPPROCESS_INFORMATION指针。它包含进程句柄。您需要手动关闭进程,因为没有像 Linux/Unix 中那样的进程层次结构。

有关CreateProcess的信息,请参见此处,有关PROCESS_INFORMATION -结构的信息请参见此处。

于 2013-02-19T11:39:48.553 回答