關於C 中的GUI執行緒

2021-05-25 00:40:47 字數 459 閱讀 1963

大家知道,c++中線程分兩種,一種是工作者執行緒,另外一種就是gui執行緒,至於他們這間的區別大家可以上網上查詢

這裡我只是說明一下,建立gui執行緒時,需要注意的地方。

有些和視窗相關的執行緒,最好是放在gui執行緒裡,因為和視窗或是特殊控制項有關的初使化操作,gui執行緒已經幫你合理的優化了,如果用工作者執行緒需要自己做這些操作,往往我們是做不好的。如果建立的mfc程式,在主視窗執行緒裡再建立乙個子執行緒,用來產生乙個視窗,那麼就用gui執行緒,這時候,因為程序中有兩個gui執行緒,新建立的視窗傳送wm_close後,視窗關閉,但是新建立的gui執行緒並沒有退出,造成記憶體洩露。所以後面建立的執行緒必需要自己處理,執行緒退出事件,具體操作如下:

新建立的gui執行緒裡的視窗類需要自己處理ondestroy訊息,並在此函式裡呼叫postquitmessage(0);結束執行緒,所有的資源才能釋放。

希望對你有幫助,有問題可以聯絡本人,[email protected]

關於Lua在GUI程式設計中的應用

在我們的gui系統實現中,為了使gui系統的風格可以靈活改變,我採用了lua指令碼化來實現。具體實現 建立lua的指令碼函式,int lua adddialog lua state l int lua addbutton lua state l 等,在lua中可以直接新增dialog,button,...

QT中實現Thread於GUI主線程通訊的方法

目前只會一種,採用訊號槽機制。通常情況下,訊號和槽機制可以同步操作,這就意味著在發射訊號的時候,使用直接函式即可以立刻呼叫連線到乙個訊號上的多個槽。然而,當連線位於不同執行緒中的物件時,這一機制就會變得不同步起來,可以通過修改qobject connect 的第5個可選引數而改變。connect的第...

QT中實現Thread與GUI主線程連通方法

本文介紹的是qt中實現thread與gui主線程通,目前只會一種,採用訊號槽機制。通常情況下,訊號和槽機制可以同步操作,這就意味著在發射訊號的時候,使用直接函式即可以立刻呼叫連線到乙個訊號上的多個槽。然而,當連線位於不同執行緒中的物件時,這一機制就會變得不同步起來,可以通過修改qobject con...