作者chengcti (卡馬請出來面對!!)
看板C_and_CPP
標題Re: [問題] SendMessage
時間Tue Oct 9 09:29:41 2012
因為 event 沒放在 queue 裏面做 dispatch
會產生之前的 event 沒人處理, 你後面的 event 卡死前面
所以 Win32 才會要求 所有的執行都要先送到 event queue 內
再處理
最常見的是 multi-thread, 因為 thread 執行順序是隨機的
如果你用 call function
則會在 main process 內執行 而非在 thread 內執行
常碰到的是記憶體位置會有重複寫入的問題
如果不用 event 做 Synchronous
那就請用 mutex, interlock, critical section, semaphore 這些
同步元件來做處理
event 是因為寫程式的人不用管同步, win32 會自己做同步
※ 引述《ghkckhg (行人)》之銘言:
: VC6.0 MFC
: 對於SendMessage這個函式,
: 我和我同事始終不懂為何不直接呼叫就好(或許會多一兩道工)?
: 反正兩者都會等待執行完畢,
: 而且直接呼叫明確許多。
: 我觀察到這個語法在Multi-Thread好像比較常出現,
: 但還是不知道為什麼...
: 有什麼樣的時機只有SnedMessage適合使用呢?
: 謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.139.242
→ s8911124:推這篇 10/09 13:30
推 ghkckhg:@@ 講得有點深了 我回去研究一下windows programming... 10/09 14:47
→ firose:看不懂... 10/09 18:46
推 damody:水喔! 不過這些東西以前要有學過才看的懂。 10/09 21:06