Закрытие потока, как правильно это сделать? |
Здравствуйте, гость ( Вход | Регистрация )
Закрытие потока, как правильно это сделать? |
AD |
23.6.2009, 13:57
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Что-то не удается закрыть поток:
а в главном окне программы есть следующий сигнал:
В основной программе в слоте переключения вкладок я имитирую этот сигнал. В чем ошибка, из потока все-равно не выходит. В этот бесконечный цикл все-равно попадает. |
|
|
SABROG |
23.6.2009, 14:05
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
В основной программе в слоте переключения вкладок я имитирую этот сигнал. И слот на него выполняется тоже в основной программе, если ты не делал thread->moveToThread(thread); В этот бесконечный цикл все-равно попадает. В этом бесконечном цикле тогда надо проверять флаг типа if (finished) return; А в слоте его тогда надо устанавливать. Неужели бесконечный цикл нельзя заменить на exec()? И выполнять задачи в слотах по таймеру или по сигналам из внешнего потока? |
|
|
AD |
23.6.2009, 14:14
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
В этом бесконечном цикле тогда надо проверять флаг типа if (finished) return; А в слоте его тогда надо устанавливать. Неужели бесконечный цикл нельзя заменить на exec()? И выполнять задачи в слотах по таймеру или по сигналам из внешнего потока? А что за флаг? Т.е. в слоте устанавливать его, а в потоке в цикле проверять? |
|
|
Текстовая версия | Сейчас: 15.1.2025, 5:03 |