程序里主线程进行界面的维护,工作者线程后台进行串口的通讯,每次通讯历时700ms,主程序关闭时经常会提示68K内存泄漏或者句柄泄漏,一查,原因在于主程序关闭资源释放之后,线程仍在工作。主要参考这篇文章。
解决方法是:
1、线程里的通讯死循环改造为用标志位判断;
2、主程序关闭的时候设置这个标志位为FLASE;
3、线程里return0之前设置事件;
4、主线程关闭前用WaitForSingleObject等待线程完全退出,释放资源;
5、主线程正常退出。
本文介绍了一个常见的内存泄漏问题,即当主线程关闭时由于后台线程仍在运行导致资源未被正确释放。文章提供了详细的解决方案,包括修改线程的死循环为条件循环、设置标志位、使用事件对象以及等待线程完全退出等。
程序里主线程进行界面的维护,工作者线程后台进行串口的通讯,每次通讯历时700ms,主程序关闭时经常会提示68K内存泄漏或者句柄泄漏,一查,原因在于主程序关闭资源释放之后,线程仍在工作。主要参考这篇文章。
解决方法是:
1、线程里的通讯死循环改造为用标志位判断;
2、主程序关闭的时候设置这个标志位为FLASE;
3、线程里return0之前设置事件;
4、主线程关闭前用WaitForSingleObject等待线程完全退出,释放资源;
5、主线程正常退出。

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