[問題] Qt - 在QThread內使用QProcess,主程式卻卡住了...
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
我正在寫一個Qt console application (我的主程式)
會透過QProcess去執行一個外部執行檔
PS:該執行檔是一個用Qt寫出來的簡單瀏覽器
因為直接用QProcess去執行它,會讓主程式被block住
所以改在Thread內去執行
但是主程式還是被block住了...
且如果我把瀏覽器關掉,主程式也結束掉了(exited with code 0)
希望得到的正確結果:
主程式把瀏覽器較起來之後,可以繼續它的任務
(執行後續的程式碼)
程式跑出來的錯誤結果:
上述~
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
ubuntu 8.0.4 on x86
Qt 4.5.2
Code will compile for MIPS
有問題的code: (請善用置底文標色功能)
Thread部分
class Browser : public QThread
{
public:
Browser();
void run();
void stop();
QProcess *proc;
...
...
...
void Browser::run()
{
proc->execute("/home/username/web.exe");
}
主程式
Browser webThread();
webThread.start(); // *********************
fprintf(stderr, "Wake browser up...");
補充說明:
webThread.start();之後,程式流就不繼續跑了
所以後面的debug訊息(以及所有程式碼)都不執行了.....:(
怎麼用了thread還是被卡住?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.38.86
推
03/24 20:17, , 1F
03/24 20:17, 1F
→
03/25 11:43, , 2F
03/25 11:43, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章