怎么用消息在线程之间传递数据?

ussthamcn 2005-09-14 04:49:21
在我的数据采集线程中,每采集到一个数据,我就用消息把这个数据发到主线程进行处理。
或向视图类法发一个WM_PAINT消息。并把采集的一个数据发过去。
怎么做,给我写个例子好吗?
...全文
336 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ussthamcn 2005-09-15
  • 打赏
  • 举报
回复
明白了,谢谢.第二个问题再问吧,这点分是太少了.
pomelowu 2005-09-15
  • 打赏
  • 举报
回复
怪我没说清楚。

PostThreadMessage用来发线程消息,需要CWinThread派生类接受。

PostThreadMessage不是用来发送窗口消息的。用SendMessage和PostMessage发送窗口消息。我想说的是,发送窗口消息需要窗口句柄。你发送消息的线程和接受消息的窗口的线程是不同的,而线程间传递窗口句柄不会有问题。所以你只需要在发送消息的线程获得目的窗口的句柄,就能发送消息过去了(比如你想发送的WM_PAINT消息)。
WM_COPYDATA是用来传递数据的消息,可以在线程间和进程间传递数据。
ussthamcn 2005-09-15
  • 打赏
  • 举报
回复
再问个问题,我在工作线程(数据采集)线程中要把连续采集到的数据发到主线程中进行处理和显示。
我现在想用消息把每次采集到的数据(采样频率为40HZ)用消息发到主线程中,这种做法好吗?
如果用共享内存还得每次采集到数据时候告诉主线程采集到数据。还得用消息通知主线程?
不知道我的想法对不对?
ussthamcn 2005-09-15
  • 打赏
  • 举报
回复
用WM_COPYDATA消息和用我自己定义的消息有什么不一样吗?
rageliu 2005-09-15
  • 打赏
  • 举报
回复
up
phoenix96_2000 2005-09-15
  • 打赏
  • 举报
回复
我是想在工作线程中向我的用户界面线程(主线程)发采集到的数据
~~

在工作线程直接用AfxGetMainWnd()->SendMessage(WM_COPYDATA...)
在MainFrm里面添加WM_COPYDATA的处理接收数据,然后用文档/视图结构来更新视图就可以了
phoenix96_2000 2005-09-15
  • 打赏
  • 举报
回复
线程必须要有个消息循环才能接收到
ussthamcn 2005-09-15
  • 打赏
  • 举报
回复
我是想在工作线程中向我的用户界面线程(主线程)发采集到的数据.
PostThreadMessage投递的消息只有CWinThread类或派生类才能处理,可我想要CView的派生类来处理工作线程用消息发过来的数据.
ussthamcn 2005-09-15
  • 打赏
  • 举报
回复
"通过窗口句柄发送窗口消息。线程间传递窗口句柄没有问题的"? 我不明白是什么意思。PostThreadMessage是向一个线程的消息队列发消息。没有窗口句柄阿。
我试了怎么收不到消息?
落入凡间的猪 2005-09-14
  • 打赏
  • 举报
回复
SendMessage(hwndReceiver,WM_COPYDATA,(WPARAM)hwndSender,(LPARAM)&cds)
具体的使用方法,请参考MSND
gomoney 2005-09-14
  • 打赏
  • 举报
回复
WM_COPYDATA
pomelowu 2005-09-14
  • 打赏
  • 举报
回复
发送线程消息用PostThreadMessage

通过窗口句柄发送窗口消息。线程间传递窗口句柄没有问题的。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧