消队队列和UI的关系

来源:互联网 发布:福建卫生网络直报系统 编辑:程序博客网 时间:2024/04/28 12:40



Windows 毕竟是个消息驱动系统,如果某个执行线程调用::GetMessage 而其消息队列却是空的,这个执
行线程便被冻结,直到再有消息进来为止。冻结的意思就是不管你的优先权有多高,暂时
退出排班行列。执行线程也可能被以::SuspendThread 强制冻结住(::ResumeThread 可以解
除冻结)。会被冻结,表示这个执行线程「要去抓取消息,而执行线程所附带的消息队列中却没有消息」。
如果一个执行线程完全和UI 无关呢?是否它就没有消息队列?倒不是,从上图中可以看到,不管线程是否跟UI相关,线程的数据结构中都有MessageQueue字段,都可以使用PostThreadMessage给执行线程发消息,但它的程序代码中没有消息循环倒是事实。是的,这种执行线程称为worker thread。
原创粉丝点击