我不太確定這是否是正確的方法(im愛好者)。我想將消息發佈到循環GetMessage()的工作線程,並根據消息做些什麼。我知道我必須使用posthreadmessage()與該工作線程的句柄。使用來自不同線程的posthreadmessage()
這裏是我的問題:
我可以使用
PostThreadMessage(idWorkerThread, WM_COMMAND, (WPARAM)0, (LPARAM)0))
從多個不同的線程?我知道這可能會導致消息從不同線程同時寫入工作線程消息隊列。這是一個問題還是很好?基本上我想要一個N-> 1線程間通信。
只需添加Pete發佈的內容,如果在Windows或任何其他多任務處理器上的OS調用都是線程安全的,則無需擔心。根據定義,它們是。如果他們不是操作系統會很快炸燬,你永遠不會看到你的桌面。唯一的例外是子系統中的晦澀之處,比如設置進程調試鉤子。像PostThreadMessage這樣的主流內核調用是100%線程安全的。 – 2012-04-17 11:55:28