• SendMessage、PostMessage、PostThreadMessage


    SendMessage()是阻塞型的函数,把消息发送给消息队列后,在消息没有响应完之前这个函数是不会返回的,返回值和消息处理函数是有直接关系的,消息处理函数返回什么,SendMessage就返回什么参数。
    而PostMessage()是非阻塞型函数,把消息抛出去(与指定窗口创建的线程相关联的消息队列里)之后就返回,不管消息是否响应,返回的是发送的成功和失败,一般是很少失败,除非窗口不存在。
    PostThreadMessage() 没有目标窗口,直接指定目标线程ID来确定目标线程,只能在消息循环中直接根据消息类型做相应的处理。

    注意:
    跨线程或者跨进程发送消息时推荐使用PostMessage(),因为它不阻塞。
    如果是UI线程,则应使用PostMessage;如果是工作线程,则应使用PostThreadMessage,不要为了接收消息而创建窗口。
    系统只对系统级的消息(0 ~ WM_USER-1)进行封送处理。发送自定义消息(>= WM_USER)到另一个进程,需要自己对消息进行封送处理。
    如果发送一个范围低于WM_USER的消息给异步消息函数(PostMessage、 SendNotifyMessage 或 SendMessageCallback),它的消息参数不能包含指针。否则,操作将失败。函数将在接收线程处理消息之前返回,发送者将在内存被使用之前释放。
    请不要使用 PostMessage 函数投递 WM_QUIT 消息;应该使用 PostQuitMessage 函数代替。

  • 相关阅读:
    搭建高可用K8S集群
    K8S部署apollo配置中心
    微服务二:微服务的拆分、设计模式、内部结构
    微服务一:微服务概念入门及发展历程
    k8s可视化管理dashboard
    Windows节点加入K8S集群(K8S搭建Linux和Window混合集群)
    K8S搭建单点集群+问题处理
    K8S核心概念
    毕业论文word排版设置
    Anaconda3+PyTorch安装教程
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/13725535.html
Copyright © 2020-2023  润新知