windows 多线程 消息队列

本文介绍了Windows中的线程类型,重点讲解了GUI线程如何处理消息队列。操作系统通过系统消息队列分发消息,确保每个窗口的消息由创建它的线程处理。线程之间的消息传递方式包括SendMessage和PostMessage,涉及线程切换和上下文切换的成本。理解这些机制对于高效编程至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows线程分为两种:Worker线程、GUI线程

worker线程:是指完全不牵扯到图形用户界面(GUI),纯粹做运算的线程。

GUI线程:负责建造窗口以及处理消息循环(拥有消息队列)。任何一个特定窗口的消息总是被产生这一窗口的线程抓到并处理(线程收到消息后派发给不同的窗口函数处理)。


操作系统会监控计算机上的键盘和鼠标等输入设备,为每一个输入事件(由用户操作所引发,比如用户按了某个键)生成一个消息。根据事件发生时的情况(比如当前激活的窗体负责接收用户按键,而依据用户点击鼠标的坐标可以知道用户在哪个窗体区域内点击了鼠标),操作系统会确定出此消息应该发给哪个窗体对象。这些生成的消息会统一地先临时放置在一个“系统消息队列(system message queue)”中,然后,操作系统有一个专门的线程负责从这一队列中取出消息,根据消息的目标对象(就是窗体的句柄),将其移动到创建它的UI线程所对应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值