GetMessage是不是在没有消息的情况下,进程(线程)处于阻塞状态?
在WinMain函数中的消息循环中:
wile(GetMessage(&msg, NULL, 0, 0)) {...}
这里有两个问题:
1、WinMain中的GetMessage是从操作系统中的消息队列来获取消息的。那么如果这个消息循环是在某个子线程中的,那么GetMessage又是从什么地方来获取消息的呢?
注:我知道可以通过PostThreadMessage(ThreadId, WM_×××, NULL, NULL)来往线程中发消息,但是我相知道的是这个消息是发到操作系统的消息队列吗?
2、如题,因为这里的消息循环在得到WM_QUIT前是个死循环,如果GetMessage在没有消息时也一直运行,那么是不是很耗资源吗?所以我认为在没有资源时应该处于阻塞状态。
3、哪位兄弟手上有详细的消息对象的数据结构不妨拿出来共享一下^_^,俺手上的这本书不巧没有消息的数据结构的详细介绍。