QT学习笔记——thread多线程

例子

试过开两个线程,两个进度条,当两个进度条同时更新数值,会报错,什么问题没了解。

#include 
bool flag=false;
void Thread1(QProgressBar *p1)
{
    for(int i=0;i<100;i++){
        p1->setValue(i);
        usleep(50000);
    }
    flag=true;
}

void MainWindow::on_pushButton_clicked()
{
    ui->progressBar->setRange(0,100);
    ui->progressBar->setValue(0);
    flag=false;

    std::thread t1(Thread1,ui->progressBar);
    t1.detach();

    for(int i=0;i<100;i++){
        if(flag) {
            ui->label->setText("finish!");
            break;
        }
        sleep(1);
    }
    //next step
}

你可能感兴趣的:(QT学习笔记——thread多线程)