C++ 多线程我用的CreateThread(),发现退出线程函数最好就是自动return返回,其他的ExitThread()函数和TerminateThread()都会有内存泄漏的风险,
但是目前我要做的一个功能是点击按钮“开始”,会自动创建一个线程持续执行while(1),点击按钮“结束”,结束线程停止功能,这种情况下如何无风险的退出线程
那你把while(1)改成while(flag),然后在主线程里去改flag的值不就行了
内存泄漏是因为线程虽然终止了,但是线程里变量申请的空间没有正常释放掉
要么你把所有的变量申请变成全局变量(如果很多你可以使用数组)
ExitThread()函数和TerminateThread()都属于强行终止线程了,尽量不用,可能线程本身还在工作。最好办法是给线程发个消息,或者有个全局的标志变量,让线程处理函数自行判断标志或接收到退出线程消息后自行退出线程。