1
我已经创建了两个程序A和B. B被设计为在64位A内启动的32位QProcess。这些程序通过stdin,stdout和QSharedMemory很好地进行通信。松散的QProcess
A:A() {
QProcess *p = new QProcess(this);
p->start("B.exe");
}
A:~A() {
p->deleteLater();
}
现在,如果A被关闭,B也将被关闭。 但是,如果我在Windows任务管理器中结束了进程A,那么B将继续生活在松散状态,并且B的CPU使用率将通过屋顶。为什么?
如果A被立即销毁,我该如何关闭B?
我做了一些调试,发现应用程序通过Windows任务管理器或QtCreator中的“红色方形按钮”关闭时,A的DTOR从未达到。这就是为什么这个过程继续存在,为什么'close()'或'kill()'不起作用... – Magnus 2011-05-31 14:21:04