1、给类增加一个成员:
CWinThread *m_pThread;2、在构造函数中:m_pThread = NULL;3、在析构函数中及需要中止线程的地方:
//结束后台线程
if (m_pThread != NULL)
{
TerminateThread(m_pThread->m_hThread, 0);
m_pThread = NULL;
}备注:一般不建议TerminateThread,如果要中止线程比较安全的做法是通过循环变量进行判断,让线程自行退出。
4、需要启动新线程时:
m_pThread = AfxBeginThread(fetchHouse, pPara);其中fetchHouse是新线程的入口函数,pPara是传给带入口函数的参数。入口函数的原型如下:
UINT fetchHouse(LPVOID p)注意:
(1)入口函数只支持一个入参,如果需要传递多个参数,则通过自行定义结构体实现。
(2)入口函数的参数只能是指针。
本文介绍了如何使用CWinThread类进行线程管理,包括成员变量的声明与初始化、线程终止方法及安全做法、线程启动过程及参数传递方式。强调了避免直接使用TerminateThread并推荐使用循环变量控制线程结束。
1781

被折叠的 条评论
为什么被折叠?



