1. 程式人生 > >Peekmessage和Getmessage的區別(轉載)

Peekmessage和Getmessage的區別(轉載)

Peekmessage和Getmessage都是向系統的訊息佇列中取得訊息,不過性質不同。
  若第一次向訊息佇列中取不到訊息,則程式的主執行緒會被OS(作業系統)掛起;等到OS重新排程到該執行緒時,而且訊息佇列仍然是空的時,兩者的性質不同: 
  若使用Getmessage(),則程式的主執行緒會仍被OS掛起。 
  若是用Peekmessage(),則程式會取得OS控制權,執行一段時間。此函式多用於處理系統的空閒時間。
getmessage   and   peekmessage   are     both   get   the   message   from   send_message   queue. 
getmessage   supports     同步機制。PEEKMESSAGE   SUPPORTS   非同步機制。

從原因上而言:GetMessage函式從訊息佇列中得到訊息後並在佇列中刪除該訊息 
              PeekMessage函式從訊息佇列中得到訊息後並不在佇列中刪除該訊息 
從結果上而言:GetMessage等待一個訊息(就像_getch),直到拿到訊息才返回
              PeekMessage不是這樣(就像_kbhit),查詢訊息佇列,有就取,即使沒有也立即返回。 
   
為了實現windows的多工,要用getmessage,因為當getmessage發現自己的訊息佇列裡沒有訊息時,就會把控制權交還給系統,這樣就可以讓避免資源的浪費。

GetMessage函式每次呼叫是肯定會取回一個訊息的,當訊息佇列為空的時候此程序會被掛起直到訊息佇列中有訊息可取為止。 
PeekMessage函式不管訊息佇列中是否有訊息都會立即返回,返回是可以從返回的值裡判斷是否取到了訊息,準確地說此函式是詢問了一下訊息佇列,至於取回訊息後是否從訊息佇列中刪除此訊息,由引數可以指定。 
  Windows3.1時很多應用程式的訊息佇列是由GetMessage函式構成的,而Win32以後大多數的應用程式的訊息佇列是由 PeekMessage函式構成的,vc和bcb好像都是這樣的,基於Win32的搶先式多工處理機制,採用PeekMessage函式構成的訊息迴圈也不會對系統造成什麼威脅。

相關推薦

classmethodstaticmethod區別轉載

轉載 eth -a lan targe tween 內部 pytho -s 主要classmethod是被類直接調用使用 statifcmethod是在類內部訪問時候並且是能被類直接調用時候使用 原文鏈接地址:click classmethod和staticmethod區

redisMySQL區別轉載

redis是一個記憶體資料結構的服務,它將資料儲存在記憶體中,從而實現了非常好的吞吐量和效能。它有提供了很豐富的資料結構,特別適合社交類業務的系統。但是記憶體資料庫要求伺服器的記憶體足夠才行,儲存的資料量越大消耗的記憶體也就越大,如果記憶體不夠就會導致作業系統進行記憶體到磁碟

cmakemake區別轉載

轉載點選開啟連結 大家都知道,寫程式大體步驟為: 1.用編輯器編寫原始碼,如.c檔案。 2.用編譯器編譯程式碼生成目標檔案,如.o。 3.用連結器連線目的碼生成可執行檔案,如.exe。 但如果原始檔太多,一個一個編譯時就會特別麻煩,於是人們想到,為什麼不設計一種類似批處理

PeekmessageGetmessage區別轉載

Peekmessage和Getmessage都是向系統的訊息佇列中取得訊息,不過性質不同。   若第一次向訊息佇列中取不到訊息,則程式的主執行緒會被OS(作業系統)掛起;等到OS重新排程到該執行緒時,而且訊息佇列仍然是空的時,兩者的性質不同:    若使用Getmessage

addEventListenerattachEvent的區別轉載

att ont tar key light chrom 我想 target win attachEvent 與addEventListener到底有什麽區別呢?總結如下: 一、適應的瀏覽器版本不同 attachEvent——兼容:IE7、IE8;不兼容firefox、chr

TCP/IPUDP之間的區別轉載

有用 可靠性 client 之間 可靠的 col 因此 用戶數據報 ack 在分析兩者之間的區別之前,我們先搞清楚這兩者的關系, TCP/IP協議簇 是一種網絡控制協議,簡單點說就是一種網絡協議,我們網絡中的計算機就是通過這套協議簇來進行數據通信的。這套協議簇裏面包含了很

SQLServer中DataLength()Len()兩內置函數的區別轉載

-- 字節 varchar 1個漢字 value var bubuko 聲明 函數 最近工作中遇到了個問題:在數據庫中聲明字段類型時char(4),但實際只存儲了‘DCE’三個字母,程序中拼裝以該字段作為key的Map中,會把‘DCE&r

棧的區別轉載

一、預備知識—程式的記憶體分配 一個由C/C++編譯的程式佔用的記憶體分為以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其 操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式設計師分配釋放, 若程式設計師不釋放,程式

虛擬函式純虛擬函式的區別轉載

首先:強調一個概念定義一個函式為虛擬函式,不代表函式為不被實現的函式。定義他為虛擬函式是為了允許用基類的指標來呼叫子類的這個函式。定義一個函式為純虛擬函式,才代表函式沒有被實現。定義純虛擬函式是為了實現一個介面,起到一個規範的作用,規範繼承這個類的程式設計師必須實現這個函式。1、簡介假設我們有下面的類層次:

List list = new ArrayList();ArrayList list=new ArrayList();用法及區別轉載

List是一個介面,而ArrayList 是一個類。 ArrayList 繼承並實現了List。        List list = new ArrayList();這句建立了一個ArrayList的物件後把上溯到了List

HashTable、HashSetDictionary的區別轉載

The 調用 測試 opera lock-free api 結構 通過 屬於 1.HashTable哈希表(HashTable)表示鍵/值對的集合。在.NET Framework中,Hashtable是System.Collections命名空間提供的一個容器,用於處理和表

countDownLatchjoin的區別轉載

首先,我們來看一個應用場景1: 假設一條流水線上有三個工作者:worker0,worker1,worker2。有一個任務的完成需要他們三者協作完成,worker2可以開始這個任務的前提是worker0和worker1完成了他們的工作,而worker0和worker1是可以並

Jquery的Ajax中contentTypedataType的區別轉載

上程式碼 $.ajax({ type: httpMethod, cache: false, contentType: "application/json; charset=utf-8", dataType: "json",//返回值型別 url: pa

關於thissuper的區別轉載

先看下面一段程式碼,比較短,//父類 class FatherClass {     public int value;     public void f() {         this.run();//注意這兒的是this,注意     }     public void run(){         

jar包war包的介紹區別轉載

包括 啟動tomcat 代碼 產品 來源 hive 獲得 到你 apps 來源:https://www.jianshu.com/p/3b5c45e8e5bd 做Java開發,jar包和war包接觸的挺多的,有必要對它們做一個深入的了解,特總結整理如下: 1.jar包的介

阻塞IO非阻塞IO的區別轉載

轉載地址: http://blog.sina.com.cn/s/blog_a46817ff0101g0gv.html http://blog.csdn.net/nodeathphoenix/article/details/30389317 有很多人把阻塞認為是同步

HTML提交方式postget區別實驗

des url action 通過 性別 清除數據 map pass pack HTML提交方式post和get區別(實驗) 一、post和get區別 get提交,提交的信息都顯示在地址欄中。 post提交,提交的信息不顯示地址欄中,顯示在消息體中。 二、客戶端代碼

J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM區別轉載

不同版本 配置 查詢 程序實現 整理 tails javase 企業級應用 來源 轉載地址:http://blog.csdn.net/alspwx/article/details/20799017 一、J2EE、J2SE、J2ME區別 J2EE——全稱Java 2 Ente

【CronExpression表達式詳解案例】轉載

強烈 簡單的 exce 初始 每分鐘 第三周 normal orm 以及 原文地址:https://www.cnblogs.com/pipi-changing/p/5697481.html 找了下Cron的資料,這篇作者寫的比較清晰,轉載記錄一下,方便後面使用的時候在g

揭秘微信紅包:架構、搶紅包算法、高並發降級方案轉載

spa 系統優化 因此 事務 賬戶 body 同步 傳統 2-0 與傳統意義上的紅包相比,近兩年火起來的“紅包”,似乎才是如今春節的一大重頭戲。歷經上千年時代傳承與變遷,春節發紅包早已成為歷史沈澱的文化習俗,融入了民族的血脈。按照各家公布的數據,除夕全天微信用戶紅包總發送