Re: [問題] SendMessage
看板C_and_CPP (C/C++)作者chengcti (卡馬請出來面對!!)時間13年前 (2012/10/09 09:29)推噓2(2推 0噓 2→)留言4則, 4人參與討論串5/5 (看更多)
因為 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
→
10/09 13:30, , 1F
10/09 13:30, 1F
推
10/09 14:47, , 2F
10/09 14:47, 2F
→
10/09 18:46, , 3F
10/09 18:46, 3F
推
10/09 21:06, , 4F
10/09 21:06, 4F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章