1. 熟悉如何建立一个工作线程。
1) m_hThread=AfxBeginThread(控制函数指针,传递参数,线程优先级,线程堆栈大小,线程创建标志,安全属性结构指针) 返回一个线程指针,保护之以便以后终止该线程
2) 在类中添加控制函数: static UNIT SecondThread(参数)
3) 终止:afxendthread(退出码);
退出码获得:GetEixtCodeThread(线程句柄,接受终止状态的地址)
线程句柄自爱创建线程返回时返回的CWinTHread从m_hThread成员变量中得到
2. 点击另外一个按钮,停止线程的运行。
定义一个全局变量false,在停止按钮响应函数中设置为ture。
在线程控制函数中判断一下,这个全局变量如:
While(!m_KillWorkTread){
计算……
WaitForSingleObject(pCCLMemTestDlg->m_hEvent, 1000);
}
可以定义一个事件,当事件有效或者时间到了1000时,会跳出等待
3. 问题:
1) 线程申明是static,所调用的所有函数变量都需要是static,可以传入一个类指针解决问题。如:killtimer调用: pCCLMemTestDlg->KillTimer(TEST_TOTAL_TIME);
2) 加入getlasterror()查看系统函数错误码,可以通过TOOLS->Error Lookup查询错误码的含义。