![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
ViGOur |
![]()
Сообщение
#11
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
512es |
![]()
Сообщение
#12
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
вообще, это мой первый проект на Qt, потому прошу сильно ногами не бить =)
вот как я пытаюсь делать:
знаю что многое ещё выгледит слишком не красиво, но сейчас мне нравное разобраться с потоками.. в дальнейшем вынесу всё управление пользователями в отдельный класс.. так вот, проблема в том что PThread::customEvent(QEvent *event) выполняется почему то в главном потоке( хотя по идее должен в дочернем.. это можно наглядно увидеть через Process Explorer. когда доходит до цикла forever вешается главный поток, а не дочерний( |
|
|
512es |
![]()
Сообщение
#13
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
попробовал через сигнал\слот..
всё равно в том же потоке выполняется =( |
|
|
512es |
![]()
Сообщение
#14
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
вообщем, всю голову сломал, не знаю как сделать(
http://trolltech.com/developer/faqs/faq.20...0-02.9810372345 написано что есть 3 способа: 1) передача эвентов 2) QCoreApplication::invokeLater() 3) и сигнал\слот с QueuedConnection но к сожалению всё сказаное там для явы.. пробовал эвенты и через сигнал\слот с QueuedConnection. пробовал даже вызывать метод в котором эмитится сигнал по которому вызывается нужный слот, как тут: http://forum.sources.ru/index.php?showtopic=245838&hl= результат один и тот же( обгуглил весь инет, народ, не ужели никто не знает как вызывать метод из класса дочернего потока чтобы он выполнился в том самом дочернем а не в главном? на ум приходит ещё один оч кривой способ.. отказаться от родителя в дочерних потоках и добавить в нужные методы moveToThread(this) иии.. вот только что родилась идея ещё хуже.. пересылать данные по TCP на локалхост соединению между главным и дочерними потоками =)) бред.. |
|
|
ViGOur |
![]()
Сообщение
#15
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
ViGOur |
![]()
Сообщение
#16
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Вот я пример набросал, правда с рисованием, но думаю идея будет понятна...
![]() Раскрывающийся текст main.cpp
xThread.h
xThread.cpp
Сообщение отредактировал ViGOur - 13.11.2008, 14:31 |
|
|
512es |
![]()
Сообщение
#17
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
ViGOur, спасибо!) то что надо!))
у меня рождалась мысль что объект надо создавать в секции run() но уже не верилось что это заработает.. вообще жудко запутаная конструкция получилось, жаль что нельзя упростить.. хотяя... |
|
|
ViGOur |
![]()
Сообщение
#18
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
512es |
![]()
Сообщение
#19
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
разве что от CxThread::drawText() удалось избавиться)
вообще сервер работает быстро и надёжно) сколько бы не подключалось клиентов, пакеты им приходят моментально!) отказался от эвентов, использую везде теперь только сигнал\слот =) |
|
|
Litkevich Yuriy |
![]()
Сообщение
#20
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
вообще сервер работает быстро и надёжно) сколько бы не подключалось клиентов, пакеты им приходят моментально!) Ну вот, а на пргорге тема о высоконагруженном сервере на Qt зашла в тупик (тык)
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 5:43 |