Qt在工人类中突破循环

时间:2014-10-27 16:46:48

标签: c++ qt

我有一个工人类,它位于自己的线程中,与GUI线程分开。在worker类中,我有一个包含do-while循环的方法。我试图这样做,所以点击GUI上的按钮就会提前摆脱循环。到目前为止我所拥有的:

Class Worker : public QObject {
...

public slots:
    void process();

private slots:
    void killLoop(){killLoopFlag =true;}

private:
    bool killLoopFlag;
};//end class declaration


connect(ui->stopButton,SIGNAL(clicked()),worker,SLOT(killLoop()));
//qDebug confirms this connection works.

void process(){
    killLoopFlag = false; //SOLUTION. Was bool killLoopFlag before.
    do {//stuff
        QApplication::processEvents();
        if (killLoopFlag ==true){break;}
    } while (//othercondition);

在process()方法中killLoopFlag未设置为true。我错过了什么?

编辑:KillLoopFlagprocess()的开头变为红色。删除了bool,一切都很好

0 个答案:

没有答案