PostThreadMessage-Windows API线程消息传递

PostThreadMessage是一个Windows API函数。其功能是将一个队列消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回,可以实现线程间消息传递。

函数原型:

BOOL PostThreadMessage(
DWORD idThread,
UINT Msg,
WPARAM wParam,
LPARAM IParam
);

输入参数:

idThread,消息将被寄送的线程的线程标识符
Msg,指定将被寄送的消息类型
wParam,指定附加的消息特定信息。
IParam,指定附加的消息特定信息。

返回值:

如果函数调用成功,返回非零值。
如果函数调用失败,返回值是零。
若想获得更多的错误信息,请调用GetLastError函数。
如果idThread不是一个有效的线程标识符或由idThread确定的线程没有消息队列,GetLastError返回ERROR_INVALID_THREAD_ID。

说明:

消息将寄送到的线程必须已创建消息队列,否则调用PostThreadMessage会失败。用下列方法之一来处理这种情况:
(1)调用PostThreadMessage。如果失败,调用Sleep,再调用PostThreadMessage,反复执行,直到PostThreadMessage成功。
(2)创建一个Event事件对象,让PostThreadMessage等待接受的线程idThread创建一个消息队列。可以通过调用PeekMessage强制系统创建一个消息队列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值