UI執行緒和工作者執行緒的訊息佇列

2022-05-05 23:45:19 字數 524 閱讀 4627

ui執行緒有視窗,視窗自建了訊息佇列。

工作者執行緒初始狀態沒有自建訊息佇列。

其實ui執行緒通常是指有createwindow/createwindowex並處理訊息迴圈的執行緒,其實與是主線程還是工作執行緒沒有關係

只不過大部分程式是在主線程中處理ui訊息的並且只在該執行緒中處理ui訊息,因為涉及api的同步/非同步問題,這種方式會使得介面處理比較簡化,

但並不是說只能在主線程中做,你也可以在主線程中做與 gui 無關的事情,而在工作執行緒中處理 ui 建立和訊息分發

實際工作執行緒也是可以有訊息迴圈,且不一定處理的都是ui訊息,參考 postthreadmessage

如果你想在兩個執行緒中分別 create 不同的 window 那麼你就得特別小心了,因為某些 gdi/gui 相關的 api 內在的關聯會使問題變得很複雜

工作執行緒和介面執行緒都可以有訊息佇列,

只不過通常情況下工作執行緒沒有而已,

如果工作執行緒函式裡面如果呼叫了

有關訊息的函式,作業系統自動為

工作線成建立訊息佇列。

MFC工作者執行緒

工作者執行緒 1.在標頭檔案中新增uint threadfunc lpvoid lpparam 注意應在類的外部 2.新增protected型變數 cwinthread pthread 3.新增執行緒處理函式 uint threadfunc lpvoid lpparam return 0 4.開啟執...

Windows 執行緒漫談 介面執行緒和工作者執行緒

每個系統都有執行緒,而執行緒的最重要的作用就是並行處理,提高軟體的併發率。針對介面來說,還能提高介面的響應力。執行緒分為介面執行緒和工作者執行緒,介面實際就是乙個執行緒畫出來的東西,這個執行緒維護乙個 訊息佇列 訊息佇列 也是介面執行緒和工作者執行緒的最大區別,這個詞應該進到你的腦子裡,根深蒂固的!...

Windows執行緒漫談介面執行緒和工作者執行緒

每個系統都有執行緒,而執行緒的最重要的作用就是並行處理,提高軟體的併發率。針對介面來說,還能提高介面的響應力。執行緒分為介面執行緒和工作者執行緒,介面實際就是乙個執行緒畫出來的東西,這個執行緒維護乙個 訊息佇列 訊息佇列 也是介面執行緒和工作者執行緒的最大區別,這個詞應該進到你的腦子裡,根深蒂固的!...