QThread не прекращает работу(((, QThread |
Здравствуйте, гость ( Вход | Регистрация )
QThread не прекращает работу(((, QThread |
fortero |
6.10.2011, 13:49
Сообщение
#1
|
Участник Группа: Участник Сообщений: 132 Регистрация: 4.12.2010 Пользователь №: 2242 Спасибо сказали: 0 раз(а) Репутация: 0 |
Господа специалисты, подскажите как быть с QThread как бы всё работает но при закрытии последнего окна виджета программа висит, тред дальше пашет...
Подскажите где я ошибся:
secondclass.cpp
Спасибо за внимание! |
|
|
silver47 |
7.10.2011, 18:18
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
С Qt идет пример Thread Fortune Server, но его особенность такова:
входящее соединение -> создается поток, поток делает свою работу по списку последовательно и завершается Вы внесли изменение, воткнули цикл forever в поток. Это не есть верно. посмотрим на то, что содержит реализация потока сервера. Она состоит из конструктора класса и метода run:
Что поменять? Логично, что сокет нужно создавать в конструкторе и не на стеке а на куче т.е так:
Соединить необходимые сигналы... здесь конкретно самым необходимым будет socket::readyRead(), который сообщает о том что данные в сокет просочились. А в методе run достаточно будет лишь запустить обработчик событий:
В догонку измененный текст QThreadFortune Server. Теперь он создает сокет, и молчит, при получении данных вываливает их в дебаг. Висит до тех пор пока клиент не отключиться. Ждет подключения на любом адресе на порту пять пятерок При подключении с локалхоста так и указывайте в терминале localhost:55555 Сообщение отредактировал silver47 - 7.10.2011, 18:42
Прикрепленные файлы
|
|
|
Текстовая версия | Сейчас: 30.1.2025, 7:12 |