子线程如何访问主线程的全局变量

onjun 2001-01-10 04:37:00
希望能举例说明
...全文
2394 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
onjun 2001-02-05
  • 打赏
  • 举报
回复
如果在同一个主线程里创多个子线程,恐怕不宜直接调用吧?
xzjxu 2001-02-01
  • 打赏
  • 举报
回复
直接使用
沒有名字 2001-02-01
  • 打赏
  • 举报
回复
只要子线程能看到主线程的全局变量的声明就可以了。
如不在同一文件,可在子线程的.cpp 文件里声明
extern int g_var;

然后就可放心使用了,不过在使用是主意互斥访问这个数据。
yarao 2001-01-28
  • 打赏
  • 举报
回复
一、主进程的全局变量对它的所有子线程都是有效的
二、你可通过__beginthread(FuncName,0,pData) 传递给子线程你要访问的变量
其中 FuncName 为子线程函数的名称,pData为一个你要指向的传递的变量的指针
mjk 2001-01-28
  • 打赏
  • 举报
回复
请阅读《Windows 高级编程》
wishyouluck 2001-01-10
  • 打赏
  • 举报
回复
1.创建子线程时,将主线程指针作为参数.
2.在子线程函数中,通过AfxGetApp()获得主线程指针.
onjun 2001-01-10
  • 打赏
  • 举报
回复
sorry,我的本意是:在应用程序中创建子线程,子线程会用到主线程的数据,如何使用?

witsoft2000: 直接用可以吗?

我想通过继承CWinThread类来创建线程,因为,我的运行子函数是另一个类的方法。

各位,谁有例子?

这可能是一小问题,可把握难倒了。
呵呵
purpleclouds 2001-01-10
  • 打赏
  • 举报
回复
全局变量在整个进程中都可以访问,
你说的是不是线程同步的问题?
sxbyl 2001-01-10
  • 打赏
  • 举报
回复
对了,你这里的“全局”是什么意思?
witsoft2000 2001-01-10
  • 打赏
  • 举报
回复
直接用
sxbyl 2001-01-10
  • 打赏
  • 举报
回复
给个思路,如果是工作线程,给参数时指定主线程指针
如果是GUI指针,创建时先挂起,设定一个指针后开始运行

以上仅代表本人个人观点,不代表M$观点,如出现不兼容,不人不负法律责任,特此声明!
witsoft2000 2001-01-10
  • 打赏
  • 举报
回复
主进程的全局变量对它的所有子线程都是有效的

15,473

社区成员

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

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