社区
进程/线程/DLL
帖子详情
请问为什么在线程函数中使用窗口类的变量,会出现访问冲突的错误呢?
lydcsdn
2008-11-01 01:22:51
DWORD WINAPI Ld_FormatData(LPVOID lpParam)
{
CWinDlg *pDlg = (CWinDlg *)lpParam;
UINT PointMax=pDlg->countmax/2; ***这里发生访问冲突,countmax为CWinDlg类的一个公有变量,UNIT类型
return 0;
}
...全文
98
7
打赏
收藏
请问为什么在线程函数中使用窗口类的变量,会出现访问冲突的错误呢?
DWORD WINAPI Ld_FormatData(LPVOID lpParam) { CWinDlg *pDlg = (CWinDlg *)lpParam; UINT PointMax=pDlg->countmax/2; ***这里发生访问冲突,countmax为CWinDlg类的一个公有变量,UNIT类型 return 0; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fish_gao
2008-11-02
打赏
举报
回复
为什么不判断一下指针的有效性呢?
if ( lpParam == NULL )这种情况呢?你没有给出你调用的代码,就不好说你传递进来的指针是否有效了。比如你要是传递一个局部的指针,多线程下可能可以用,也可能在使用前就被另一个线程释放了,要是你的控件指针是全局的就不同,不过判断这个指针的有效性是非常的有必要的。
yxz_lp
2008-11-02
打赏
举报
回复
pDlg多半为无效指针
glacier3d
2008-11-02
打赏
举报
回复
http://support.microsoft.com/default.aspx?scid=kb;en-us;147578
Description of CWnd derived MFC objects and multithreaded applications in Visual C++
可能有帮助!
lwd4210
2008-11-01
打赏
举报
回复
学习楼上的
wltg2001
2008-11-01
打赏
举报
回复
经常有人讨论这个问题,在线程中能不能用MFC的类指针,一般认为MFC大多数并不是线程安全的,所以这样用会出现问题,所以在线程中如果要处理对话框之类的最好用句柄,楼主这个变量如果是控件的关联变量,最好用句柄,保证不会出问题,如果不是的话就设为全局变量吧
hityct1
2008-11-01
打赏
举报
回复
pDlg所指向的对话框实例存在吗?
dch4890164
2008-11-01
打赏
举报
回复
[Quote=引用 2 楼 wltg2001 的回复:]
经常有人讨论这个问题,在线程中能不能用MFC的类指针,一般认为MFC大多数并不是线程安全的,所以这样用会出现问题,所以在线程中如果要处理对话框之类的最好用句柄,楼主这个变量如果是控件的关联变量,最好用句柄,保证不会出问题,如果不是的话就设为全局变量吧
[/Quote]
或者采用消息的形式也可以
不要处理变量,发消息过去,转由消息响应函数处理
尹成Python27天入门到项目实战
算学费输入数据求最大精确划分思维解决最大次大交换数据实现按行显示围棋棋盘绘制国际象棋绘制为什么要用
函数
函数
的四种
类
型
函数
的一般形式必须用
函数
的理由-哥德巴赫
函数
的本质就是地址
函数
变量
意义
函数
变量
用途...
28. shell当
中
的
函数
变量
作用域,
变量
类
型,普通
变量
,全局
变量
,环境
变量
,局部
变量
详解和示例
函数
变量
变量
作用域: 普通
变量
:=在当前shell进程有效,为执行脚本
会
启动专用子shell进程;...由于普通
变量
和局部
变量
会
冲突
,建议在
函数
中
只
使用
本地
变量
在
函数
中
定义本地
变量
的方法 local NAME=VALUE ...
线程
安全问题——
线程
冲突
、死锁
线程
冲突
、死锁等问题都属于
线程
安全问题,具体的:两个
线程
对一个
变量
进行操作,但是没有上锁,即没有进行同步操作,就像买车票的时候多个
窗口
一起卖,但是车票数没有减去。车票被重复卖出。就是不安全。还有,被多...
windows下多
线程
通信方法(多
线程
访问
同一
变量
)
当需要有多个
线程
来
访问
一个全局
变量
时,通常我们
会
在这个全局
变量
前加上volatile声明,来告诉编译器这个全局
变量
是“易变”(更直接的讲是“直接存取原始内存地址”,更明确的说是不要编辑器去读缓存
中
的数据,而是...
(MFC
中
子
窗口
调用父
窗口
指针(子
类
调用父
类
))VS2015-MFC 引发了异常 读取
访问
权限
冲突
引发了异常 读取
访问
权限
冲突
,见底部解决方法。 /////////////////////////////////////////////////////////////////////////////// 一、创建子
窗口
二、子
窗口
调用父
窗口
指针的
函数
代码 CMFCDlg *pDlg = ...
进程/线程/DLL
15,472
社区成员
49,183
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章