调用PostThreadMessage给线程发消息,实现线程间的通信(附源码)

本文介绍了Windows多线程间使用PostThreadMessage进行通信的细节,包括确保线程函数运行、消息队列建立、以及解决线程间消息传递的问题。通过示例代码展示了如何在新线程启动并准备好接收消息后,正确调用PostThreadMessage。
摘要由CSDN通过智能技术生成

       线程间通信的方式有多种,比如函数回调、(匿名)管道、发送消息等,对于Windows多线程,Windows提供了系统API函数PostThreadMessage可以给目标线程发消息,即通过发送消息的方式实现多线程间的通信。但使用PostThreadMessage函数时有些需要注意的细节,本文就来详细地介绍一下。

1、创建线程的函数返回时,新创建的线程的线程函数不一定运行起来了

       在Windows系统中,我们可以调用CreateThread或__beginthreadex等函数去创建新的线程,在调用这些函数时指定线程对应的线程函数。当CreateThread或__beginthreadex返回时,只表示线程创建成功了,但线程函数不一定立即运行起来了。

       有时我们需要在CreateThread或__beginthreadex返回后,等待线程函数运行起来,再进行后续操作。那我们如何知道线程函数已经运行起来呢?我们可以在调用CreateThread或__beginthreadex之前创建一个初始无信号的事件,然后把事件句柄作为

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dvlinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值