1、音频播放死循环导致卡顿

while(1)
{
if(play_flag)
{
GPIOManager::getInstance().Set_PI1_L();
msleep(2);
if(new_music_flag)
{
if(music_fd)close(music_fd);
a.append(Music_Path_File);
pt=a.data();
music_fd = ::open(pt, O_RDONLY, 0);
new_music_flag=0;
music_size= ::lseek(music_fd,0L,SEEK_END);
qDebug()<<"music_size"<<music_size;
music_progress=0;
::lseek(music_fd,0L,SEEK_SET);
cnter = ::read(music_fd, buffer, 2048);
qDebug()<<"cnter:"<<cnter;
read(music_fd, buffer, 2048);
::lseek(music_fd,0L,SEEK_CUR);
}

if(!suspend)
{
cnt = ::read(music_fd, buf, 2048);
if(cnt>0)
{
::write(audio_fd, buf, cnt);
music_progress+=cnt;
}
else
{
play_flag=0;
qDebug() << "play end";
close(music_fd);
msleep(2);
GPIOManager::getInstance().Set_PI1_H();
}
}else
{
this->usleep(100);
}

}else
{
this->usleep(100);
}
}

2、WIFI 扫描导致的卡顿问题

void  WifiCmd::run(){
ms_cunt=0;
stopped=false;
while(!stopped){
msleep(100);
switch (cmd_state) {
case 0:
ms_cunt=0;
//msleep(3000);
break;
case 1:
qDebug()<<"WifiCmd::run()--scan_wifi()";
ms_cunt=0;
scan_wifi();
cmd_state=3;
break;
case 2:
qDebug()<<"WifiCmd::run()--start_wifi()";
ms_cunt=0;
start_wifi();
// Restart_wifi();
cmd_state=0;
break;
case 3:
ms_cunt++;
if(ms_cunt>200){
ms_cunt=0;
qDebug()<<"WifiCmd::run()--update_signal()"<<QThread::currentThreadId();
update_signal();
}
//cmd_state=0;
break;
default:
break;
}
}
}