回 帖 发 新 帖 刷新版面

主题:[讨论]多线程问题

我在住线程中创建了一个线程,thread是定义好了的全局变量,
thread=AfxBeginThread(DataSaveProcess,NULL,
          THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);//挂起,到需要时resume
在另外一个线程中调用thread-<ResumeThread();
后来运行的时候出现unhandled exception 
请问这是为什么?

回复列表 (共3个回复)

沙发

你无法判断是
AfxBeginThread(DataSaveProcess,NULL,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
先执行,还是
thread-<ResumeThread();先执行;
如果后者先执行,启动1个不确定的线程指针,自然会出错。

板凳


那请问如何解决这个顺序问题?

3 楼


初始化thread为空

在调用线程中:

判断thread为空否?
是->什么也不做
否->启动线程

我来回复

您尚未登录,请登录后再回复。点此登录或注册