我已经创建了两个程序A和B。B被设计为从64位A开始的32位QProcess。这些程序通过标准输入、标准输出和QSharedMemory很好地通信。
A:A() {
QProcess *p = new QProcess(this);
p->start("B.exe");
}
A:~A() {
p->deleteLater();
}现在,如果A被关闭,B也将被关闭。然而,如果我在Windows任务管理器中结束进程A,B将继续游荡,而B的cpu使用率将达到顶峰。为什么?
如果A被立即销毁,我如何关闭B?
发布于 2011-05-31 20:57:08
尝试从DTOR对另一个进程执行close() (或kill()),然后执行原始delete p。我在使用QextSerialPort对象时也遇到了类似的问题,当使用deleteLater()删除它时,它也倾向于像幽灵一样存在,但是当立即删除它时,它会立即打包离开。
https://stackoverflow.com/questions/6187825
复制相似问题