青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 4, comments - 6, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

以下內(nèi)容完全把window 操作系統(tǒng)當(dāng)作一個(gè)黑盒,因此所有內(nèi)容只能作為對(duì)其內(nèi)部的一個(gè)猜測(cè)。

1. windows操作系統(tǒng)內(nèi)部在創(chuàng)建一個(gè)線程的時(shí)候,會(huì)自動(dòng)為它創(chuàng)建一個(gè)消息隊(duì)列。

2.每當(dāng)一個(gè)線程創(chuàng)建一個(gè)窗口的時(shí)候,操作系統(tǒng)內(nèi)部都會(huì)把該窗口的Handle和線程相關(guān)聯(lián)。很有可能在操作系統(tǒng)內(nèi)部會(huì)維護(hù)一個(gè)窗口handle到線程的map. 還有一種可能就是窗口的成員變量里面有一個(gè)指針,指向創(chuàng)建它的線程。

3.窗口本身并沒有消息隊(duì)列,所有發(fā)到窗口的消息,都會(huì)自動(dòng)被發(fā)到創(chuàng)建該窗口的線程的消息隊(duì)列中。

4.每個(gè)線程只能處理自己線程隊(duì)列里面的消息,不能處理其他線程消息隊(duì)列里面的消息。
所以PeekMessage(LPMSG lpMsg, HWND hWnd, UINT,UINT,UINT)函數(shù)中,如果hWnd不是本線程創(chuàng)建的窗口,則該函數(shù)調(diào)用失敗。

5.由于在線程消息隊(duì)列里面的消息會(huì)包含有窗口句柄,所以PeekMessage可以專門處理某個(gè)特殊窗口的消息。


6. 曾經(jīng)有疑問線程是不是只有創(chuàng)建了窗口才具有消息隊(duì)列,但又覺得應(yīng)該不是這樣,因?yàn)樵趙indows的API里面有個(gè)函數(shù)叫PostThreadMessage,可以直接把消息投遞到線程的消息隊(duì)列里面,而不需要任何窗口句柄。后來(lái)在MSDN里面有這么一段描述,覺得解釋的很詳細(xì):
“The system maintains a single system message queue and one thread-specific message queue for each graphical user interface (GUI) thread. To avoid the overhead of creating a message queue for non–GUI threads, all threads are created initially without a message queue. The system creates a thread-specific message queue only when the thread makes its first call to one of the User or Windows Graphics Device Interface (GDI) functions".
 這里唯一的疑問我想應(yīng)該是”makes its first call to one of the User or Windows Graphics Device Interface (GDI) functions", 這句話的意思是不是等同于創(chuàng)建一個(gè)窗口呢?

Feedback

# re: 關(guān)于windows、線程、消息的一點(diǎn)體會(huì)  回復(fù)  更多評(píng)論   

2009-04-03 22:22 by rico
有見地!

The system creates a thread-specific message queue only when the thread makes its first call to one of the User or Windows Graphics Device Interface (GDI) functions".

非常有意思的地方,也就是說(shuō),程序不能顯示的為自己的一個(gè)線程創(chuàng)建消息隊(duì)列。更有意思的是一篇文章說(shuō),如果你給一個(gè)線程postthreadmessage如果失敗,那么對(duì)不起,等等再試,直到成功,非常滑稽的設(shè)計(jì)。最想不通的是,其他操作系統(tǒng)上,你愛怎么創(chuàng)建消息隊(duì)列,你就創(chuàng)建,也沒有什么限制,為啥微軟的消息隊(duì)列就必須要受限?

恐怕是早期,微軟假設(shè),一個(gè)進(jìn)程一個(gè)消息隊(duì)列足以。后來(lái)支持多線程了,又缺省的認(rèn)為,工作線程,你別關(guān)心UI的事情,不給你消息隊(duì)列。等到最后來(lái),覺得線程消息也不錯(cuò)啊,這樣又允許非主線程擁有消息隊(duì)列,并可以在上面完成UI??傊?,感覺在微軟看來(lái),消息隊(duì)列除了干UI的事情,沒啥用。你要在進(jìn)程之間發(fā)個(gè)自定義消息,那也不是他很期望的事情。

純屬推測(cè)。

# re: 關(guān)于windows、線程、消息的一點(diǎn)體會(huì)  回復(fù)  更多評(píng)論   

2009-04-03 22:40 by rico
另外,PostThreadMessage,都不可以帶窗口Handle的喔。當(dāng)然,如果是發(fā)給窗體的,微軟認(rèn)為,postmessage就可以了。這就讓人納悶了,我消息不是直接發(fā)給窗體的,而是直接發(fā)給一個(gè)線程的,雖然那個(gè)窗體屬于某個(gè)線程,并最終會(huì)被dispatch到對(duì)應(yīng)的窗口,因?yàn)椴僮飨到y(tǒng)自己也登記了窗口屬于那個(gè)線程(博主的推測(cè))。

所以微軟想開發(fā)者,老老實(shí)實(shí)的,你要發(fā)消息到另外一個(gè)窗口,不用告訴我窗口所在的線程,告訴我窗口句柄就可以了,我(os)曉得該怎么轉(zhuǎn)發(fā),不用你脫了褲子放屁(對(duì)我os來(lái)說(shuō))。

但是,如果程序自己保存得有窗口所在線程的Handle,你postthreadmessage就不消到操作系統(tǒng)查map,豈不是快些?不過(guò)感覺這是微軟的慣例了,盡量封裝多一點(diǎn),封裝死一點(diǎn),這樣系統(tǒng)看起來(lái)更復(fù)雜和高深。同時(shí)這樣安裝盤可以做的更大些,這樣,可以可以消耗更多塑料,拉動(dòng)GDP,而且是圍繞微軟的GDP。

# re: 關(guān)于windows、線程、消息的一點(diǎn)體會(huì)  回復(fù)  更多評(píng)論   

2009-05-22 11:47 by 飛鴿傳書
有點(diǎn)難理解。

# re: 關(guān)于windows、線程、消息的一點(diǎn)體會(huì)  回復(fù)  更多評(píng)論   

2009-05-22 11:53 by 飛鴿傳書
哈哈,表達(dá)得太好了。@rico

# re: 關(guān)于windows、線程、消息的一點(diǎn)體會(huì)[未登錄]  回復(fù)  更多評(píng)論   

2012-01-16 17:39 by 葡萄
1. windows操作系統(tǒng)內(nèi)部在創(chuàng)建一個(gè)線程的時(shí)候,會(huì)自動(dòng)為它創(chuàng)建一個(gè)消息隊(duì)列。

這個(gè)說(shuō)的不對(duì)。在線程創(chuàng)建的時(shí)候,所有線程都是沒有消息隊(duì)列的。
只有這個(gè)線程中顯式的調(diào)用GUI相關(guān)函數(shù)(例如創(chuàng)建窗口)時(shí)或者PostThreadMessage時(shí),才會(huì)給這個(gè)線程創(chuàng)建消息隊(duì)列。

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区日本一区韩国一区| 免费国产一区二区| 国产精品wwwwww| 99视频精品免费观看| 亚洲韩国日本中文字幕| 欧美成年人视频| 一区二区三区成人| 亚洲色在线视频| 国产亚洲激情在线| 欧美成人精品激情在线观看| 蜜臀av一级做a爰片久久| 亚洲精品永久免费精品| 一本综合精品| 精品二区视频| 亚洲精品在线视频| 国产欧美一区二区精品忘忧草| 久久精品卡一| 欧美精品一区二区视频 | 欧美影院精品一区| 在线精品在线| 正在播放欧美视频| 伊大人香蕉综合8在线视| 欧美激情一区二区三区在线视频观看 | 亚洲人成网站999久久久综合| 国产精品国产三级国产专播品爱网| 欧美在线观看网站| 欧美成人精品| 久久本道综合色狠狠五月| 欧美成人精品在线观看| 欧美一二三视频| 欧美人交a欧美精品| 久久精品30| 欧美视频在线一区二区三区| 久久精品国产一区二区电影| 欧美精品福利| 免费成人性网站| 国产精品一二| 亚洲精品偷拍| 亚洲国产精品日韩| 羞羞漫画18久久大片| 在线亚洲欧美视频| 看片网站欧美日韩| 久久九九精品99国产精品| 欧美屁股在线| 欧美成人资源网| 韩国一区二区三区在线观看| 亚洲图片欧美日产| 夜久久久久久| 欧美激情视频一区二区三区在线播放| 欧美在线观看视频一区二区| 欧美日韩一区二区免费在线观看 | 欧美在线黄色| 国产精品二区二区三区| 亚洲日本中文字幕区| 在线精品视频一区二区| 亚洲欧美日韩国产成人| 亚洲性视频网站| 欧美精品国产一区| 亚洲国产精品综合| 在线日韩av永久免费观看| 久久爱91午夜羞羞| 欧美资源在线观看| 国产热re99久久6国产精品| 亚洲午夜羞羞片| 亚洲专区一区| 国产精品久久久| 中文一区二区在线观看| 亚洲调教视频在线观看| 欧美日韩国产精品一区| 亚洲精品系列| 一区二区免费在线播放| 欧美精品在线一区二区| 亚洲精品久久视频| 一区二区三区国产精品| 欧美色播在线播放| 亚洲午夜av在线| 久久精品国产综合精品| 国产手机视频一区二区| 久久精品一区蜜桃臀影院| 久久综合国产精品| 亚洲欧洲日韩在线| 欧美韩日亚洲| 亚洲一二三四区| 久久免费视频观看| 亚洲高清在线精品| 欧美日本国产一区| 亚洲免费婷婷| 久久久亚洲高清| 亚洲日韩视频| 欧美三级免费| 欧美一区在线直播| 欧美激情 亚洲a∨综合| 亚洲婷婷综合久久一本伊一区| 国产精品日本精品| 久久精品99| 亚洲日韩成人| 久久久国产精彩视频美女艺术照福利 | 亚洲美女精品一区| 亚洲一区二区三区三| 国产性色一区二区| 欧美激情第9页| 亚洲欧美文学| 亚洲激情二区| 久久精品一区二区三区不卡| 亚洲激情视频在线| 国产精品永久免费观看| 另类av一区二区| 亚洲在线第一页| 亚洲国产一区在线观看| 久久成人精品无人区| 日韩视频一区二区三区| 国产一区亚洲| 国产精品美女久久久久久免费| 久久久久久9| 亚洲宅男天堂在线观看无病毒| 欧美xart系列在线观看| 午夜影院日韩| 日韩视频亚洲视频| 在线精品亚洲| 国产视频不卡| 国产精品v片在线观看不卡| 免费中文字幕日韩欧美| 欧美亚洲一区三区| 亚洲午夜免费视频| 亚洲精品少妇30p| 嫩草伊人久久精品少妇av杨幂| 欧美亚洲视频| 午夜精品视频在线| 亚洲一二三四久久| 99综合电影在线视频| 亚洲国产专区| 亚洲国产精品一区| 在线观看国产成人av片| 国产色产综合色产在线视频| 欧美视频一区| 欧美色一级片| 欧美日韩在线一区二区| 欧美精品色一区二区三区| 美女精品一区| 欧美 日韩 国产一区二区在线视频| 午夜精品久久久久久久久| 亚洲女女做受ⅹxx高潮| 亚洲亚洲精品在线观看| 这里是久久伊人| 亚洲图片欧美一区| 亚洲综合精品四区| 性色av一区二区三区在线观看| 午夜精品久久久久| 欧美一区二区三区免费视| 亚洲综合视频一区| 欧美一区二区三区视频在线| 欧美一区二区三区免费观看视频 | 噜噜噜躁狠狠躁狠狠精品视频 | 99精品国产在热久久| 亚洲久色影视| 亚洲色图制服丝袜| 亚洲欧美亚洲| 久久久天天操| 欧美片在线播放| 国产精品福利网站| 国产欧美日韩在线观看| 黄色小说综合网站| 亚洲二区在线观看| 日韩一级不卡| 亚洲欧美日韩一区在线| 久久成人精品视频| 欧美高清在线视频观看不卡| 亚洲人成亚洲人成在线观看图片| 亚洲裸体视频| 欧美一区二区日韩| 你懂的国产精品| 国产精品国产三级欧美二区| 国产亚洲美州欧州综合国| 在线观看亚洲专区| 宅男噜噜噜66国产日韩在线观看| 小黄鸭视频精品导航| 你懂的国产精品永久在线| 99pao成人国产永久免费视频| 亚洲欧美日韩一区| 欧美成人激情在线| 国产免费一区二区三区香蕉精| 亚洲高清中文字幕| 亚洲欧美另类中文字幕| 欧美大色视频| 亚洲欧美日韩中文视频| 你懂的一区二区| 国产欧美一区二区视频| 亚洲日本黄色| 久久免费偷拍视频| av不卡在线观看| 麻豆国产精品一区二区三区 | 欧美久久一级| 国内成+人亚洲| 亚洲一区二区三区在线| 久久综合综合久久综合| 亚洲一区二区三区777| 欧美精品电影在线| 亚洲成色最大综合在线| 欧美一区二区在线看| 亚洲精品黄网在线观看|