前言:想必大家使用qt的主要原因也是容易寫界面吧,但是界面和遠程通訊,就必然會用到多綫程,這裏是qt中的一種多綫程用法,實測多次可用:
以下,説明詳細步驟,如果不懂的,歡迎提問:
1 主綫程中的代碼:隨便要在哪裏開闢子綫程都可以這麽調用,只是要考慮何時關閉該綫程
QThread thread_client;
TcpClient client;
client.moveToThread(&thread_client);
thread_client.start();
client.ConServer(hostname,port);
2 這一步比較複雜,是client類中的所有要多綫程的成員函數,都需要變化的書寫方式:
原来的func: func(){do something};
eg: ConServer(){ connect to server;}
//关键来了
client類中需要多綫程的func全部定义成另一种模式:
现在的func: func(){emit sig_func()}; slot_func(do something;);
eg:
.h:
public:
explicit TcpClient();
bool ConS