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