思路:在子執行緒中使用postevent()傳送自定義的事件類物件,在主線程中更改介面狀態
自定義事件類
#ifndef stringevent_h
#define stringevent_h
#include #include class stringevent : public qevent
;#endif // stringevent_h
#include "stringevent.h"
stringevent::stringevent(qstring data) : qevent(type)
qstring stringevent::data()
在widget類中重寫event()函式,用來捕獲postevent()傳送的事件
#ifndef updateui_h
#define updateui_h
#include #include #include class updateui : public qthread
;#endif // updateui_h
#include "updateui.h"
每隔1s傳送乙個事件類物件
void updateui::run()
quit();
}
#ifndef widget_h
#define widget_h
#include #include #include class widget : public qwidget
;#endif // widget_h
#include "widget.h"
widget::widget(qwidget *parent)
: qwidget(parent)
widget::~widget()
bool widget::event(qevent *event)
else
return true;
}
#include "widget.h"
輸出 執行緒通訊,多執行緒
多執行緒 thread handler thread處理一些複雜的業務邏輯 耗時的事情 handler在主線程中接收訊息的乙個物件 mhandler.sendmessage msg 傳送乙個訊息物件 mhandler.sendemptymessage what 傳送空訊息,只有what沒有obj m...
多執行緒 執行緒通訊
總結 今天小鹹兒來講解乙個好玩的事,那就是執行緒之間該如何通訊,執行緒通訊之後又會出現什麼問題?先來一張導圖來看看執行緒通訊的分布?疑問 如果想要執行緒按照使用者自定義的順序執行的話,那該如何操作呢?思考 如果能夠讓執行緒等待先執行的執行緒執行完,再執行不就能達到效果了嗎!果然出現問題之後,就會有對...
多執行緒 執行緒通訊
1.使用wait notify方法實現執行緒之間的通訊 1 有其他執行緒呼叫同乙個物件的notify或者notifyall方法 呼叫notify notifyall方法之前 2 被喚醒之後重新獲得物件的鎖 呼叫notify notifyall方法之後 編寫測試 如下 執行結果 2.管道通訊 管道流主...