MFC多线程编程
在MFC中创建线程一般用AfxBeginThread函数(既可以创建界面线程也可以创建工作线程)
调用主对话框的成员变量或成员函数,关键在于 AfxBeginThread函数的第二个参数(主对话框的指针this)
工作线程(无消息循环)在工作线程中不建议弹出模态对话框,弹出非模态对话框会进程中的代码会继续执行,但是对话框对鼠标的相应会没有响应;可以加消息循环,鼠标会有响应,但是不如创建界面进程;
界面线程(有消息循环)
界面线程的创建
1.从CWinThread类派生自己的子类:CUIThreadApp;
2.重载InitInstance函数(必须重载)与ExitInstance(可选重载)函数;(创建类时已经自动重载,不需要手动处理)
3.在InitInstance函数中进行界面的创建;
4.调用AfxBeginThread函数开启界面线程:AfxBeginThread(RUNTIME_CLASS(CUIThreadApp))
线程的挂起用SuspendThread函数,恢复用ResumeThread函数