首页 > 系统相关 >Windows 消息的优先级

Windows 消息的优先级

时间:2023-08-01 14:59:16浏览次数:46  
标签:优先级 Windows WM messages 处理 消息 msg

众所周知,windows窗口程序是基于消息的,其最底层维护者一个死循环如下:

while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{ 
    if (bRet == -1)
    {
        // handle the error and possibly exit
    }
    else
    {
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    }
}
该循环不断从消息队列中取消息进行处理。每次调用GetMessage从消息队列取一条消息,且是按照如下优先级取消息:
  • Sent messages
  • Posted messages
  • Input (hardware) messages and system internal events
  • Sent messages (again)
  • WM_PAINT messages
  • WM_TIMER messages 

只要优先级更高的消息,优先级低的消息就只能等优先级高的消息处理完毕后才能得到处理。

另外,如果使用没有明确启动一个线程处理事务的情况下,wdinsows程序只有一个主线程,所有的处理只能排队处理,如果某个消息处理时触发了其他需要等待的消息,就会造成消息死锁。

标签:优先级,Windows,WM,messages,处理,消息,msg
From: https://www.cnblogs.com/tdfy/p/17596474.html

相关文章

  • Windows计划任务执行路径的问题(转载)
    Windows计划任务定时执行可执行程序的时候,如果程序内加载资源文件有相对路径的存在,那么当运行计划任务的时候就会报出一个路径找不到的错误(手动执行可执行程序则无任何问题)。如下图那么在设置计划任务的时候只需要做如下修改就可以避免此类错误的出现,在操作的tab页,起始于:将程序......
  • python发送消息到Teams以及阿里云的上传与删除
    1importurllib2importtime3importoss24importos5importrandom6frompathlibimportPath7importrequests8importdatetime9fromdecoupleimportconfig1011fromurllib.parseimportunquote121314#......
  • windows安装redis
    前言RemoteDictionaryServer(Redis)是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的API,是跨平台的非关系型数据库。Redis通常被称为数据结构服务器,因为值(value)可以是字符串(Stri......
  • Android2.1消息应用(Messaging)…
    我想首先应该从AndroidManifest.xml文件开始,该文件是Android应用(APK)的打包清单,其中提供了关于这个应用程序的基本信息,如名称(application/@label),图标(application/@icon),等常量信息,但该文件最重要的功能仍然是:向Android系统声明应用程序所包含的组件,包括Activity、Service、Receiv......
  • Windows提权小结
    当获取主机权限时,希望可以将普通用户提升为管理员用户,以便获得高权限完全控制目标主机。Windows常用的提权方式有:内核提权、数据库提权、系统配置错误提权、BypassUAC提权、令牌窃取提权等姿势。个人认为在提权方面内核提权、土豆系列提权是比较效率而且成功率较高的,其他的提权方......
  • C#中Socket编程,异步实现Server端定时发送消息
    在最近项目需求中,要求服务端定时向客服端发送消息。由于客户端从机的特性,只能接收Server发送的消息后回复,不能主动向服务端发送消息。起初,并未使用异步的方法进行编程,使用了Accept()、Revice()等方法。由于从机不能主动发送消息的特性,并未考虑到从机断电不能接收到Server消息的情......
  • 难以相信Windows 10竟然每月有5亿活跃用户
    微软的Build大会开始之初,CEOSatyaNadella上台后的第一件事,照例是公布一下Windows的增长情况。根据官方统计,目前Windows10的月活跃用户数已经达到了5亿人,这项数据去年九月的时候还是4亿,提升速度可谓非常之稳定(当然,这样的增速跟当初微软宣布免费升级后的那段时间肯定......
  • 在Windows中运行Filebeat(Running Filebeat in windows)
     我最近使用这些说明在Windows上设置了filebeathttps://www.elastic.co/downloads/beats/filebeat但它迫使我保持​​cmd提示打开运行命令filebeat.exe-cfilebeat.yml我想知道是否有办法将其作为后台进程运行?谢谢。Isetupfilebeatonwindowsrecentlyusingt......
  • VRRP优先级的取值范围
    (1)VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254(2)优先级0为系统保留给路由器主动放弃Master位置时候使用(3)255则是系统保留给IP地址拥有者使用。(4)若VRRP路由器的IP地址和虚拟路由器的接口IP地址相同,则该VRRP路由器被称为该IP地址的所有者;IP地址所有者自动......
  • Windows 实例如何开放端口
    矩池云Windows实例相比于Linux实例,除了在租用机器的时候自定义端口外,还需要在Windows防火墙中添加入口规则。接下来将教大家如何设置Windows防火墙,启用端口。租用成功后通过RDP链接连接服务器,然后搜索防火墙,点击搜索结果中的WindowsDefender防火墙。在设置页面,点击......