QThread не прекращает работу(((, QThread |
Здравствуйте, гость ( Вход | Регистрация )
QThread не прекращает работу(((, QThread |
fortero |
6.10.2011, 13:49
Сообщение
#1
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
Господа специалисты, подскажите как быть с QThread как бы всё работает но при закрытии последнего окна виджета программа висит, тред дальше пашет...
Подскажите где я ошибся:
secondclass.cpp
Спасибо за внимание! |
|
|
silver47 |
6.10.2011, 14:01
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Неверно используете поток.
|
|
|
fortero |
6.10.2011, 15:09
Сообщение
#3
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
Покажите как надо... А то я только такого типа примеры нашёл....
|
|
|
RazrFalcon |
6.10.2011, 15:49
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
thread->quite();
|
|
|
fortero |
6.10.2011, 15:59
Сообщение
#5
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не получается всёравно весит!
Покажите пожалуйста рабочий сампл, очень надо, пожалуйста. Сообщение отредактировал fortero - 6.10.2011, 16:01 |
|
|
silver47 |
6.10.2011, 17:37
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Если вы делаете цикл типа:
то тогда не вижу смысла заворачивать все это в класс, унаследованный от QThread. Запустите это в отдельном потоке через QtConcurrent::run. Для этого создайте у нужного Вам класса метод, назовем его для простоты myBackgroundWork и вызовем его:
Если же Вы оборачиваете все это в QThread, то будьте любезны - используйте метод exec() для запуска цикла обработчика событий, и используйте класс так, как будто это программа от начала и до конца. Например так:
Что Вам необходимо сделать в потоке? Сообщение отредактировал silver47 - 6.10.2011, 17:38 |
|
|
fortero |
6.10.2011, 20:49
Сообщение
#7
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
fortero |
6.10.2011, 21:53
Сообщение
#8
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ребят, я что то не догоняю или совсем тупой.
Пожалуйста помогите мне… Начал разбираться дальше не получается, хоть убей… Потом курил маны, вышло вот, что: main.cpp
secondclass.h
secondclass.cpp
Теперь вроде как работает, но если верить оф. ману, то это опасный вариант - terminate(); В режиме релиза работает вроде чётко! А вот в отладке секунд 10 дуплится и потом вроде бы как срабатывает, так и должно быть или где то я на бокапорил? Покажите пожалуйста действующую модель кода, не схему а именно копипаст а то я не могу раскурить не как эту тему! Спасибо! Сообщение отредактировал fortero - 6.10.2011, 21:54 |
|
|
silver47 |
7.10.2011, 4:00
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Сокеты нужно слушать не в постоянном цикле, а запустить цикл обработчика событий... а дальше на сигналах - слотах.
Создание сокета и его запуск:
сам поток:
Сообщение отредактировал silver47 - 7.10.2011, 4:07 |
|
|
fortero |
7.10.2011, 14:23
Сообщение
#10
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
Сокеты нужно слушать не в постоянном цикле, а запустить цикл обработчика событий... а дальше на сигналах - слотах. Создание сокета и его запуск: ..................... Спасибо огромное! Я понимаю я наверное прошу многое, но Вы не могли написать готовый рабочий пример сокетов в отдельном потоке даже без шифрования. В этой теме я сильно плаваю, мне нужен готовый простейший, правильный пример что бы разобраться как, что работает... Ещё раз огромное спасибо! |
|
|
Текстовая версия | Сейчас: 15.1.2025, 18:06 |