QThread блокирует основное приложение
У меня есть простой пользовательский интерфейс формы, который имеет слот для кнопки, начиная поток:
void MainWindow::LoadImage()
{
aThread->run();
}
И метод run () выглядит так:
void CameraThread::run()
{
qDebug("Staring Thread");
while(1)
{
qDebug("ping");
QThread::sleep(1);
}
}
Когда я нажимаю кнопку, которая вызывает LoadImage (), пользовательский интерфейс перестает отвечать на запросы. Я периодически вижу сообщение "ping" как вывод отладки, но пользовательский интерфейс зависает, ни на что не отвечает. Почему мой поток не работает отдельно? CameraThread получен как публичный QThread Я использую gcc версии 4.4.3 (Ubuntu 4.4.3-4ubuntu5) с библиотеками QT и QT Creator из репозиториев Ubuntu 10.04 (x86).