LINUX.ORG.RU

История изменений

Исправление Chord, (текущая версия) :

В том и проблема, что вынос цикла в отдельный поток не избавляет от фриза. Вот простейший пример:

class WorkerThread : public QThread {
    Q_OBJECT
protected:
    void run() override {
        for (int i=0; i<10; i++){
            qDebug() << "Работаем в потоке" << i;
            QThread::sleep(2); 
        }
    }
};

void MyClass::btnThreadClicked(){
    WorkerThread *thread = new WorkerThread();
    thread->start();
}

Нажал кнопку, поток запустился и всё замерзло, пока цикл не отсчитает эти 20 секунд.

Никаких обработок, никаких скриптов, никаких QTableWidget. Ничего. Просто пустой цикл полностью фризит программу

Исходная версия Chord, :

В том и проблема, что вынос цикла в отдельный поток не избавляет от фриза. Вот простейший пример:

class WorkerThread : public QThread {
    Q_OBJECT
protected:
    void run() override {
        for (int i=0; i<10; i++){
            qDebug() << "Работаем в потоке" << i;
            QThread::sleep(2); 
        }
    }
};

void MyClass::btnThreadClicked(){
    WorkerThread *thread = new WorkerThread();
    thread->start();
}

Нажал кнопку, поток запустился и всё замерзло, пока цикл не отсчитает эти 20 секунд.

Никаких обработок, никаких скриптов, никаких QTableWidget. Ничего. Просто пустой цикл полность. фризит программу