在多线程程序中,MFC对象的使用不应该穿越线程的边界

AlanBruce
企业官方账号
2010-05-03 02:12:35
在多线程程序中,MFC对象的使用不应该穿越线程的边界。
也就是说一个工作线程只能使用本身创建的MFC对象,否则会出现不可预期的运行状态


我的问题是如何在MFC程序中创建非MFC对象

也就是不添加
#include "stdafx.h"


但是VS2008貌似中不行啊。。。
...全文
68 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wode19923 2011-07-09
  • 打赏
  • 举报
回复
必须加的
AlanBruce 2010-05-03
  • 打赏
  • 举报
回复
我现在看来不光是MFC对象问题

一般对象也是这样的
kingstarer 2010-05-03
  • 打赏
  • 举报
回复
以前还没注意到有这回事 百度了一下 找到这个
http://www.pcdog.com/edu/vc/18/10/z218689_12.html
AlanBruce 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fox000002 的回复:]
怎么写的代码?
[/Quote]

我有一个接口实现类对象

在MFC中总是出问题。

客户端一调用,服务就出错

我看了。应该就是MFC不支持对象的跨线程调用。。

AlanBruce 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianglitian 的回复:]
在线程中使用的对象需要是全局变量或者类的静态成员变量
[/Quote]

==!
向立天 2010-05-03
  • 打赏
  • 举报
回复
在线程中使用的对象需要是全局变量或者类的静态成员变量
fox000002 2010-05-03
  • 打赏
  • 举报
回复
怎么写的代码?
AlanBruce 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fox000002 的回复:]
非 MFC 对象和 stdafx.h 有什么关系

不要从 MFC 的类继承或使用 MFC 类成员就是非 MFC 类了吧

不想包含 stdafx.h 的话,关闭这个文件的预编译功能即可
[/Quote]

这样说吧。

MFC程序中运用多线程,在线程外创建的对象(未继承或使用 MFC 类成员)在线程内调用会导致出错

如何在MFC中正确使用多线程???

晨星 2010-05-03
  • 打赏
  • 举报
回复
stdafx.h只跟预编译头有关,不使用预编译头就可以不用stdafx.h。
当然,对于通过stdafx.h间接包含的头文件该加上的还是要加上,那是另一回事。
fox000002 2010-05-03
  • 打赏
  • 举报
回复
非 MFC 对象和 stdafx.h 有什么关系

不要从 MFC 的类继承或使用 MFC 类成员就是非 MFC 类了吧

不想包含 stdafx.h 的话,关闭这个文件的预编译功能即可

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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