雖然我在Borland C++應用程序的背景下引用了它,但是這個問題既是Borland特有的,也是通用的。在一個Borland C++項目中,我觀察到用戶與GUI的交互(比如菜單項點擊)的優先級低於使用Synchronize()委託給主線程的任務,儘管用戶交互正在發生幾毫秒前。當主線程可用時,首先完成委託任務,然後執行與用戶交互對應的操作。工作者線程將任務委託給主線程,並使用Synchronize()等待任務完成。所以我們可以將Synchronize()等同於SendMessage()。線程消息之間的優先級?
我認爲用戶交互作爲消息隊列中的消息排隊,同樣應該是委派任務的情況。但是,該任務如何首先執行?消息之間是否有優先權?
這對於Borland的實現非常具體。但是,消息循環首先分派來自同步隊列的任何請求,然後繼續清空消息隊列是很常見的。 –
@Hans感謝您的回覆。我對文本進行了一些修改 - 「主線程可用時」。不知道這是否重要,以防萬一。 –