2009-11-24 105 views
1

是否有任何API將消息發送到線程? 基本上我只有threadId可用,我想發送一個自定義消息到該線程。將消息發送到不同線程

+0

您使用的是什麼線程模型? WinAPI的?並行線程? – Amber 2009-11-24 10:02:15

+0

我正在使用Windows API。 – anand 2009-11-24 10:09:04

回答

5

PostThreadMessage。雖然不是很可靠。

有關原因的詳細信息,請參閱舊新新博客herehere。基本上模態消息循環會讓整個想法變得混亂。由於發佈到線程的消息沒有窗口句柄,因此調用DispatchMessage將丟棄該消息。任何你直接或間接運行的模態循環都會調用DispatchMessage,所以這個策略的很大一部分時間會失敗,並且你的消息會消失在以太網中。

+1

這兩篇文章中最重要的句子是:「如果您需要與顯示UI的線程進行可靠的通信,則創建一個隱藏窗口並將消息發送或發佈到該窗口。」 – Thomas 2009-11-24 10:30:49

+0

當然,如果_all你有一​​個ThreadId_,那個建議也不起作用。 – MSalters 2009-11-26 15:01:47