一个线程创建之初是没有消息队列的
2012-03-19 10:23
281 查看
昨天帮人改一个程序,由于不知道以下的内容,走了很多弯路。。。
原文可以在msdn中搜索“About Messages and Message Queues ”找到:
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.
windows维护着一个系统消息队列,以及分别为每个GUI线程维护一个各自的线程消息队列。为了避免非GUI线程的创建线程消息队列的开销,所有线程创建初始化时,均不创建消息队列。只有当线程第一次调用GDI函数时,系统才会为线程创建消息队列。所以那些非GUI线程是没有消息队列的。
关于消息队列更多的解释可以在如下地址找到(文章是从msdn翻译过来的):
http://blog.csdn.net/bichenggui/article/details/4677494
原文可以在msdn中搜索“About Messages and Message Queues ”找到:
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.
windows维护着一个系统消息队列,以及分别为每个GUI线程维护一个各自的线程消息队列。为了避免非GUI线程的创建线程消息队列的开销,所有线程创建初始化时,均不创建消息队列。只有当线程第一次调用GDI函数时,系统才会为线程创建消息队列。所以那些非GUI线程是没有消息队列的。
关于消息队列更多的解释可以在如下地址找到(文章是从msdn翻译过来的):
http://blog.csdn.net/bichenggui/article/details/4677494
相关文章推荐
- Android异步通信机制简单地理解,Handler是当前线程的消息队列中的一个子队列,而Runable是可以被安排到Handler去运行的接口。 首先在Activity中创建一个继承自Han
- windows每个线程一个消息队列吗?
- 使用 线程池,控制线程 , 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待:
- FAQ12:每个线程一个消息队列?还是线程中的每个窗口各有一个消息队列?
- C# 线程手册 第五章 多线程应用程序 一个多线程微软消息队列(MSMQ)监听器
- window程序一个线程中可以有几个消息队列?和几个消息循环
- 关于PostThreadMessage以及创建线程消息队列
- QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
- 利用主线程与子线程间的消息通讯,实现任务处理队列.子线程中创建不会阻塞执行的窗口
- 专门用于消息回调窗口的窗口标识HWND_MESSAGE(创建一个非可视、没有z-order的窗口)
- window程序一个线程中可以有几个消息队列?和几个消息循环
- 两台pc机用一个socket通信,每个pc机创建两个线程一个发消息一个收消息 windows socket
- 主线程中有多个handler的情况,只会共用一个消息队列(看代码)
- 0904使用msgget函数创建一个消息队列,并返回该消息队列的描述符
- Android GUI 单线程消息队列机制 —— 多线程GUI工具箱:一个破碎的梦
- Android network:主线程将创建请求放入(请求)队列,处理线程每次取一个请求,进行处理(发送/读响应)
- 创建一个线程的方法
- 细说UI线程和Windows消息队列
- 【Android开发】线程与消息处理-开启一个新线程播放背景音乐
- 如何创建一个没有滚动条的动态可缩放的文本框