关于多线程中使用SendMessage
来源:互联网 发布:软件平台下载 编辑:程序博客网 时间:2024/06/05 04:54
如果,窗口是由非主线程创建的,那么,那个线程将会跑一个自己的窗口消息队列。调用SendMessage会切换到该线程上去执行。
主线程是个窗口线程,在另外一个工作线程中调用了窗口线程的SendMessage,那么执行的过程是:
1.工作线程挂起
2.切换到窗口线程,执行对应的消息处理
3.切换回工作线程
SendMessage : 如果指定窗口由调用线程创建,那么窗口过程会被当成一个子程序立即调用。如果指定窗口由另外一个线程创建,那么系统会切换到那个线程,并且调用合适的窗口过程。在线程之间传递的消息仅仅当接收线程执行message retrieval code才会被处理。发送线程会被堵塞直到接收线程处理完消息。但是,发送线程在等待的同时会处理收到的nonqueued messages 。为了阻止这一点,使用带有SMTO_BLOCK参数 的SendMessageTimeout .
在多线程的程序里面,最好不要操作CWnd的实例指针,而是用API函数操作HWND窗口句柄。
阅读全文
0 0
- 关于多线程中使用SendMessage
- 关于多线程中使用SendMessage
- 关于Unilty中SendMessage的使用
- 关于Unilty中SendMessage的使用。
- C#中使用SendMessage
- C#中使用SendMessage
- C#中使用sendMessage
- 一篇关于在COMBOBOX中使用SENDMESSAGE的实例
- 在C#中使用SendMessage
- C#中SendMessage的使用
- 在C#中使用SendMessage
- C#中使用SendMessage函数
- Delphi中SendMessage使用技巧
- 在C#中使用SendMessage
- Delphi中SendMessage使用技巧
- Delphi中SendMessage使用技巧
- HTML5 中 postMessage sendMessage使用
- 关于SendMessage和PostMessage的使用感悟
- 信息安全实践-Lab1 HTTPS
- centos 安装logstash 5.0
- 判断一个数据序列是否构成一个小根堆
- 登陆界面
- C语言学习之被吞掉的数组大小
- 关于多线程中使用SendMessage
- 蓝桥杯 Sine之舞
- Codeforces Beta Round #25 (Div. 2 Only)
- Leetcode解题笔记121. Best Time to Buy and Sell Stock [Easy] 动态规划
- 整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(Windows)
- idea最简单的免费要不要
- java实战 ——分类模块的开发
- 1283 最小周长
- Codeforces 151C Quantity of Strings(快速幂+数学分情况)