QThread-Ausführung friert meine GUI ein

Ich bin neu in der Multithread-Programmierung. Ich habe dieses einfache Multi-Thread-Programm mit Qt geschrieben. Aber wenn ich dieses Programm ausführe, friert es meine GUI ein und wenn ich in meine Witwe klicke, antwortet es, dass Ihr Programm nicht reagiert. Hier ist meine Widget-Klasse. Mein Thread beginnt eine ganze Zahl zu zählen und gibt sie aus, wenn diese Zahl durch 1000 teilbar ist. In meinem Widget fange ich diese Zahl einfach mit einem Signal-Slot-Mechanismus ab und zeige sie in einem Label und einer Fortschrittsanzeige.

   Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    MyThread *th = new MyThread;
    connect( th, SIGNAL(num(int)), this, SLOT(setNum(int)));
    th->start();
}


void Widget::setNum(int n)
{
    ui->label->setNum( n);
    ui->progressBar->setValue(n%101);
}

und hier ist meine thread run () Funktion:

void MyThread::run()
{
    for( int i = 0; i < 10000000; i++){
        if( i % 1000 == 0)
            emit num(i);
    }
}

Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage