zoukankan      html  css  js  c++  java
  • window消息机制二

    消息机制

    windows是一个消息驱动的系统,会有一个总的系统消息的队列,鼠标、键盘等等都会流入到这个队列中,同时会为每个线程维护一个消息队列(注意默认是有GUI调用的线程才有,对于没有GUI或者窗口的线程,只有当在线程内调用get/peek message 才会自动创建一个消息队列),线程是容纳消息队列的基本单元,系统会把属于不同线程的消息投递到属于线程的消息队列中

    当线程调用get/peek message时会从系统的消息队列中取出一个本线程内的消息。(get方法是阻塞的会等到一个消息拿出来为止,取到后会从队列中移除,而peek方法只是快速的查看一下,有取出没有返回,并且可以选择取到后是否从队列中移除。)

    对于有窗口的线程,在取出message后通常调用dispatchmessage将其推送给这个线程的窗口过程函数WndProc上,通常我们在WndProc函数里面响应不同窗口对消息的处理,WndProc是我们在创建窗口时必须指定的。而没有窗口的线程,默认没有消息队列,但是你调用Get/Peek message会自动建立一个,并得到这个线程的消息。

    线程间消息传递

    通常线程将消息传递是进程间通信最重要的方式,线程间消息传递有两种API:

    PostThreadMessage :直接发送给目标线程 这是对于那些不是发给某个窗口的消息

    PostMessage:发送给某个线程下的某个窗口

  • 相关阅读:
    Insertion Sort List
    Same Tree
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    ZigZag Conversion
    Reverse Integer
    String to Integer (atoi)
    Palindrome Number
    eclipse 导入tortoiseSVN检出项目,不显示svn信息(eclipse安装svn插件)
    exception ORA-00918: 未明确定义列
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/3226265.html
Copyright © 2011-2022 走看看