文章目录
- 前言
- 一、线程的挂起与恢复SuspendThread、ResumeThread
- 二、线程的优先级
- 三、线程的退出与终结
- 1.最好的方式是让线程函数主动退出,或者return
- 2.线程自己主动退出,调用ExitThread(MFC中调用AfxEndThread,对应于AfxBeginThread)
- 3.其他程序强行结束目标线程:TerminateThread
- 4.线程退出码的获取:GetExitCodeThread
- 总结
前言
多线程4:线程的相关操作。
这里的代码是在https://blog.csdn.net/qq_59940419/article/details/145836178?spm=1001.2014.3001.5501的基础上进行修改的。点击创建线程按钮的消息响应函数和子线程函数为
一、线程的挂起与恢复SuspendThread、ResumeThread
在线程创建并运行后,用户可以对线程执行挂起和恢复操作。挂起就是指暂停线程的执行,当然有暂停就有恢复;之后用户可以通过指定的操作来恢复线程的正常执行。需要注意的是,线程的挂起和恢复是有次数的,即可以多次挂起线程,但是之后想进行线程的正常执行必须进行多次恢复操作。SuspendThread、ResumeThread二者的参数都为线程的句柄。
为了演示清晰,在主对话框上添加两个按钮分别进行子线程1的挂起(按钮2)和恢复操作(按钮3)
由于SuspendThread、ResumeThread二者的参数都为线程的句柄,在主对话框类中添加一个成员变量用于存储子线程1句柄。
在创建子线程1后获取其线程句柄
然后在挂起和恢复按钮的点击响应函数中进行子线程1的挂起和恢复操作
挂起和恢复成功,同样借助工具Dbgview进行查看,DebugView的具体用法见https://blog.csdn.net/qq_59940419/article/details/145836178?spm=1001.2014.3001.5501
可