windows - 是否可以让控制台等待另一个子进程?
问题描述
通常当从 Windows 控制台运行程序时,控制台会等待进程退出,然后打印提示并等待用户输入。但是,如果该进程启动了一个子进程,控制台仍然只会等待第一个进程退出。它也不会等待孩子。
程序有没有办法让控制台等待另一个子进程而不是(或以及)当前进程。
我认为这是不可能的,因为大概控制台正在等待进程的句柄,并且无法替换该句柄。但是,我正在努力寻找对此的任何确认。
解决方案
程序有没有办法让控制台等待另一个子进程而不是(或以及)当前进程。
不,正如您所指出的,一旦控制台创建的第一个进程退出,控制台就会停止等待。它没有第一个进程创建任何子进程的概念。
所以,你可以做的是:
只需让第一个进程等待它创建的任何子进程,然后再退出即可。
如果这不是一个选项,则创建一个单独的帮助进程,该进程创建一个作业对象,然后启动主进程并将其分配给该作业。它创建的任何子进程也将自动被放入相同的作业中1。然后,辅助进程可以等待作业中的所有进程退出,然后再自行退出。然后,您可以让控制台运行并等待辅助进程而不是主进程。
1:默认情况下 - 如果作业设置允许,进程生成器可以选择从当前作业中分离出一个新的子进程。
推荐阅读
- amazon-web-services - 如何使用 AWS Batch 多节点并行作业实现并行性
- r - 神经网络中的非一致性数组-neuralnet包
- jquery - 如何在将css应用于加载的导航菜单时在html(index.html)中加载html(导航菜单)
- sql - 如何按数字选择每个组的最新日期?
- javascript - 在 NodeJS 中转义多个嵌套函数
- python - 在 matplotlib 的子图中显示 OpenCV 图像
- python - 从另一个脚本调用一个类
- java - 詹金斯:java.lang.IllegalStateException:詹金斯.instance 丢失
- c++ - 头文件 C++
- python - 如何在不使用 Tkinter 的情况下创建警报框?