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