是否有可能使控制台等待另一个子进程?



通常,当程序从Windows控制台运行时,控制台将等待进程退出,然后打印提示符并等待用户输入。但是,如果进程启动了子进程,控制台仍然只会等待第一个进程退出。它也不会等待子进程。

程序是否有办法让控制台等待另一个子进程而不是(或同时)当前进程?

我认为这是不可能的,因为控制台可能正在等待进程句柄,并且没有办法替换该句柄。然而,我很难找到任何对此的证实。

程序是否有办法让控制台等待另一个子进程而不是(或同时)当前进程?

。正如您注意到的,一旦控制台创建的第一个进程退出,控制台就会停止等待。它没有第一个进程创建任何子进程的概念。

所以,你可以这样做:

  • 让第一个进程等待它创建的子进程退出。

  • 如果没有选项,则创建一个单独的helper进程,该进程创建一个Job Object,然后启动主进程并将其分配给该作业。它创建的任何子进程都将自动被放到相同的作业中1。然后,辅助进程可以等待作业中的所有进程退出,然后再退出自己。然后,您可以让控制台运行并等待辅助进程而不是主进程。

    1:默认情况下-进程生成器可以选择从当前作业中生成一个新的子进程,如果作业设置允许的话。

相关内容

最新更新