QThread выполнение останавливает мой графический интерфейс

Я новичок в многопоточном программировании. Я написал эту простую многопоточную программу с Qt. Но когда я запускаю эту программу, она замораживает мой графический интерфейс, и когда я щелкаю внутри своей вдовы, она отвечает, что ваша программа не отвечает. Вот мой класс виджетов. Мой поток начинает считать целое число и выдает его, когда это число делится на 1000. В моем виджете просто ловлю это число с помощью механизма сигнальных слотов и показываю его в метке и индикаторе выполнения.

   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);
}

и вот моя функция запуска потока ():

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

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос