QThread - quit(), Не выходит из цикла |
Здравствуйте, гость ( Вход | Регистрация )
QThread - quit(), Не выходит из цикла |
AD |
23.10.2009, 16:22
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Проблема следующая. Есть модальное диалоговое окошко, в котором рисуется какой-то график. При открытии окошка запускается параллельный поток, который заполняет необходимый вектор координат графика и постепенно отрисовывается. В функции run() вызывается функция в которой имеется цикл заполнения вектора. Если человек вдруг надоело ждать или он передумал смотреть этот график или ошибся (короче, по любой какой-то причине решил прервать отрисовку) и закрывается окно. При закрытии я вызываю функцию quit()! НО: после выполнения quit() в отладчике вижу, что мы снова попадаем в функцию c циклом. Что необходимо сделать, чтобы этот цикл сразу завершался? Если я после quit() пытаюсь вызвать wait(), то программа конкретно зависает.
Сообщение отредактировал AD - 23.10.2009, 16:22 |
|
|
SABROG |
23.10.2009, 16:57
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
AD |
23.10.2009, 22:54
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
В функции run() вызывается функция в которой имеется цикл заполнения вектора. Если ты не вызываешь exec() в run(), чтобы запустить цикл событий и используешь нечто вроде forever() или for(;;), то выхода не будет. Цикл, конечно же конечный, но хотелось бы, чтобы он прекращался, как только окно закрывали.... |
|
|
BRE |
23.10.2009, 22:59
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Текстовая версия | Сейчас: 18.1.2025, 5:03 |