Здравствуйте, гость ( Вход | Регистрация )
|
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, 23:00
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Как я понял за всё время существования потоков ничего кроме жестокого убийства потока и if (terminatedFlag) ничего не придумали?
|
|
|
|
AD QThread - quit() 23.10.2009, 16:22
SABROG Цитата(AD @ 23.10.2009, 17:22) В функции ... 23.10.2009, 16:57
AD Цитата(SABROG @ 23.10.2009, 17:57) Цитата... 23.10.2009, 22:54
BRE Цитата(AD @ 23.10.2009, 23:54) Цикл, коне... 23.10.2009, 22:59
AD Цитата(SABROG)Как я понял за всё время существован... 24.10.2009, 12:43
BRE Цитата(AD @ 24.10.2009, 13:43) Жаль, что ... 24.10.2009, 15:50
AD Цитата(BRE @ 24.10.2009, 16:50) А что мож... 24.10.2009, 17:09
BRE Цитата(AD @ 24.10.2009, 18:09) Да кстати,... 24.10.2009, 17:17
Cergey Всегда, если подумать, можно установить условие дл... 24.10.2009, 16:24
rnd AD, приведите минимальный пример 24.10.2009, 19:53
Cergey Цитата(BRE @ 24.10.2009, 18:17) Цитата(AD... 25.10.2009, 11:25
Litkevich Yuriy Цитата(Cergey @ 25.10.2009, 15:25) Кто пр... 25.10.2009, 11:53
rnd Кстати, зачем спорить, на то чтобы понять запускае... 25.10.2009, 13:48
BRE Для удобства можно инкапсулировать все в одном кла... 26.10.2009, 10:46
niXman Цитата(SABROG @ 23.10.2009, 23:00) Как я ... 26.10.2009, 11:32
SABROG Цитата(niXman @ 26.10.2009, 12:32) Жестко... 26.10.2009, 13:11![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 17.12.2025, 17:58 |