在qt5.9 写的程序中发现程序会收不到 全局变量赋值的变化
while(1)
{
if(stopFlag==1)
{
stopFlag=0;
break;
}
}
stopFlag 是int类型 全局变量 默认值为0,为1时停止
当我在程序测试时debug可以正常退出,release不可以
release 加个延时sleep 或者加 stopFlag 加 volatile 关键字修饰
volatile 变量是让编译器不做优化 变量的值每次直接读值
sleep 是让线程不会一直占用cpu时间片段
注意 :不要在线程中 对全局变量停止位进行赋值 会有问题 在调用线程的主线程中进行赋值。并加个延时
做法来源csdn论坛 https://bbs.csdn.net/topics/50253504