前言
windows 10 任务管理器增加了进程分组功能:应用、后台进程、windows进程,另外有些进程组显示非常方便,如Microsoft Edge、Google Chrome等,多个关联进程为一组,可以放到一块显示,并且可以查看总的资源使用情况(CPU、内存等),如图
问题描述
在windows下实现个守护进程运行在后台,一直监控UI软件状态,结果发现守护进程与UI进程在任务管理器中未合并嵌套显示,而是分开显示
解决方案
-
网上查找资料
process - How window task manager group processes under an application? - Stack Overflow
vb.net - Grouping in the "Processes" tab of Task Manager - Stack Overflow
还是无法解决这个问题
-
在任务管理器中查找规律
仔细观察任务管理器中的Microsoft Edge、Google Chrome等进程发现,每个组下只有一个前台进程,其它都为后台进程,猜测前台父进程、后台子进程可以合并显示,写测试代码验证想法
1)UI进程调用后台进程
taskmangertest::taskmangertest(QWidget *parent)
: QWidget(parent)
, ui(new Ui::taskmangertestClass())
{
ui->setupUi(this);
QTimer::singleShot(1000, []() {
QProcess::execute("ping -t 192.168.15.206");
//QProcess::execute("calc");
});
}
在任务管理器中的确合并到一块了
2)UI进程调用UI进程
taskmangertest::taskmangertest(QWidget *parent)
: QWidget(parent)
, ui(new Ui::taskmangertestClass())
{
ui->setupUi(this);
QTimer::singleShot(1000, []() {
//QProcess::execute("ping -t 192.168.15.206");
QProcess::execute("calc");
});
}
在任务管理中果然分开显示了
结论
在windows10任务管理器中
1)前台UI进程A调用后台子进程B,在任务管理器中AB进程合并到一个标题栏下
2)前台UI进程A调用前台UI子进程B,在任务管理器中AB进程分开显示