关于线程间通讯的疑问

fengogo 2008-07-31 11:54:24
线程间要进行通讯--或者说一个线程要获得另一个线程的某些数据. 我知道的两种方法,一是全局变量, 二是通过发送自定义消息,在消息参数中包含数据信息.

而在一个界面线程与一个工作线程的程序中,还经常将界面的窗口指针作为参数传给工作线程,这样就可以在工作线程中更新界面--或者说调用界面线程的一些函数. 但这样做是不是会有问题或潜在的问题? 最近写了个MFC程序在工作线程直接调用CMainFrame的函数,该函数在调用拆分窗口的GetPane函数出现错误,后来才发现是多线程的问题. 是不是直接通过传入的指针调用函数都是不安全的?
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yayafu 2008-07-31
  • 打赏
  • 举报
回复
不要兼职,工作要专一,各负责各的工作
mycool2001 2008-07-31
  • 打赏
  • 举报
回复
不要在工作线程中更新界面,发送消息给界面线程,让它更新!
孤客天涯 2008-07-31
  • 打赏
  • 举报
回复
如果线程中要对窗口控件操作,最好是PostMessage的方式
xkyx_cn 2008-07-31
  • 打赏
  • 举报
回复
最好是通过消息来通讯,界面线程根据消息来更新显式

你这样做容易发生死锁
fengogo 2008-07-31
  • 打赏
  • 举报
回复
谢谢, 有试过PostMessage,因为传递的是数据结构的指针,所以又需要考虑线程同步. SendMessage则不用了. 不知道哪个效率高些..线程的切换快吗?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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