网站首页 产经 > 正文
大家好,小豆豆来为大家解答以上的问题。python 多线程通信,线程通信这个很多人还不知道,现在让我们一起来看看吧!
1、多线程通信的方法主要有以下三种:1.全局变量进程中的线程间内存共享,这是比较常用的通信方式和交互方式。
2、注:定义全局变量时最好使用volatile来定义,以防编译器对此变量进行优化。
3、2.Message消息机制常用的Message通信的接口主要有两个:PostMessage和PostThreadMessage,PostMessage为线程向主窗口发送消息。
4、而PostThreadMessage是任意两个线程之间的通信接口。
5、2.1.PostMessage()函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);参数:hWnd:其窗口程序接收消息的窗口的句柄。
6、可取有特定含义的两个值:HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。
7、消息不被寄送到子窗口。
8、NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。
9、Msg:指定被寄送的消息。
10、wParam:指定附加的消息特定的信息。
11、IParam:指定附加的消息特定的信息。
12、返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。
13、MS还提供了SendMessage方法进行消息间通讯,SendMessage(),他和PostMessage的区别是:SendMessage是同步的,而PostMessage是异步的。
14、SendMessage必须等发送的消息执行之后,才返回。
15、2.2.PostThreadMessage()PostThreadMessage方法可以将消息发送到指定线程。
16、函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam, LPARAM lParam);参数除了ThreadId之外,基本和PostMessage相同。
17、目标线程通过GetMessage()方法来接受消息。
18、注:使用这个方法时,目标线程必须已经有自己的消息队列。
19、否则会返回ERROR_INVALID_THREAD_ID错误。
20、可以用PeekMessage()给线程创建消息队列。
21、3.CEvent对象CEvent为MFC中的一个对象,可以通过对CEvent的触发状态进行改变,从而实现线程间的通信和同步。
本文到此分享完毕,希望对大家有所帮助。
版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
猜你喜欢:
- 2022-09-28 东芝m331笔记本(东芝m331)
- 2022-10-09 上海黄浦公园怎么走(上海黄浦公园)
- 2023-01-02 记载的意思(雄跨的意思)
- 2022-11-25 魅世紫眸废材逆天九小姐漫画(魅世紫眸)
- 2022-11-30 *** 次数:888888 已用完请联系开发者*** 高鸿涛
- 2022-10-26 君子坦荡荡小人常戚戚(君子坦荡荡)
- 2022-09-28 美人鱼好看吗还是很丑的(美人鱼好看吗)
- 2022-10-26 stackoverflowatline1什么意思
最新文章:
- 2023-03-07 抚松县社保局咨询电话号码(抚松县社保)
- 2023-03-07 嘴上长牙的鱼(怪鱼长人类牙齿嘴唇)
- 2023-03-07 法国古建筑火灾(法国南特15世纪教堂发生火灾)
- 2023-03-07 泸定桥的资料50字(泸定桥的资料)
- 2023-03-07 刘若英和陈升合唱为爱痴狂(刘若英和陈升合唱)
- 2023-03-07 杭州失踪女子案最新报道(杭州失踪女子最新消息)
- 2023-03-07 赖宝死了?(赖宝突发心梗去世)
- 2023-03-07 欧游杂记是散文集还是诗文集(诗文集)
- 热点推荐
- 热评文章