![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AntonTatu |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Учусь программированию по книге Земскова Юрия, пытаюсь разобраться с его примером клиент - многопоточный эхо сервер, понять немогу почему НЕ работает вот такая конструкция, т.е. в примере она есть но m_threads при удалении потока не уменьшается. Очень нужно с этим разобраться !.
Пример полностью в файле. ![]() |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
AntonTatu |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
а что такое m_threads, список (QList)? QList<EchoThread*> m_threads; ну да, принцип такой, создается соединение, сокет, поток, поток добавляется в список потоков m_threads, про метод void EchoServer::removeThread() автор пишет следующее: "При получении сигнала о завершении потока выясняем какой именно поток сгенерировал этот сигнал, ставим этот поток в очередь на уничтожение и удаляем из списка потоков", но дело в том что я не вижу что бы thread в методе получал какое либо значение, соответственно и m_threads не уменьшается... |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
но дело в том что я не вижу что бы thread в методе получал какое либо значение о каком значении идёт речь?в коде не достаточно проверок. Попробуй такой код: увидишь кое что интересное
|
|
|
AntonTatu |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
о каком значении идёт речь? неправильно выразился, почему то в этом методе не получается выяснить какой именно поток сгенерировал сигнал о завершении потока соответственно не срабатывает
т.е. не работает
и я немогу разобраться почему.... ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
AntonTatu |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
у меня только одна мысль, он к этому моменту уже мертв. Темболее что в консоль пишатся ругань, о том, что postEvent отправлен в тьму тараканью да ругань я и сам вижу... немогу ничего придумать что бы заработало правильно..... ![]() у меня только одна мысль, он к этому моменту уже мертв. Темболее что в консоль пишатся ругань, о том, что postEvent отправлен в тьму тараканью да ругань я и сам вижу... немогу ничего придумать что бы заработало правильно..... ![]() все разобрался, все дело в сигнале ... создается поток , после него сигнал который не должен быть DirectConnection.... |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.6.2025, 4:35 |