说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

初学者一问:为什么DLL内调用不了线程(有源码,麻烦帮看下,谢谢)

编辑:说三道四文库 发布时间:2018-08-17 06:03
HTML文档下载 WORD文档下载 PDF文档下载
我在DLL内建了一个工作者线程
UINT TestThread(LPVOID pParam)  //此线程即使什么都不做也会出错,真是怪了

   return 1;
}
void LoadThread()
{
 CWinThread *m_pThread;
 m_pThread=AfxBeginThread(TestThread,0);
 m_pThread->ResumeThread();//就这句出错了,
}
m_pThread=AfxBeginThread(TestThread,0);
这一句中,你并没有指定线程创建后暂时处于SUSPEND状态,那么线程自然是一经创建立即就绪,何须后面的
m_pThread->ResumeThread();
不行啊,怎么办?帮下我这初学者啊,谢谢
m_pThread->ResumeThread();//就这句出错了,
这句不要。
你没有在线程创建时指定CREATE_SUSPENDED参数,所以线程一创建就自动运行,
不需要再ResumeThread()
m_pThread=AfxBeginThread(TestThread,0,THREAD_PRIORITY_NORMAL,CREATE_SUSPENDED);
我在DLL内建了一个工作者线程
UINT TestThread(LPVOID pParam)  //此线程即使什么都不做也会出错,真是怪了

while(1)
{
Sleep(1000)
}
   return 1;
}
void LoadThread()
{
 CWinThread *m_pThread;
 m_pThread=AfxBeginThread(TestThread,0);
 m_pThread->ResumeThread();//就这句出错了,
}
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘