QThread, QEvent, QTcpServer, взаимодействия между потоками |
Здравствуйте, гость ( Вход | Регистрация )
QThread, QEvent, QTcpServer, взаимодействия между потоками |
512es |
10.11.2008, 16:00
Сообщение
#1
|
Участник Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: 0 |
всем привет!
пишу многопоточный высокопроизводительный сервер на qt. сервер прослушивает коннекты на определённый порт и на каждое входящее соединение создаёт отдельный поток. при каждом пришедшем пакете поток отсылает главному потоку сообщение через customEvent. вроде работает, только не знаю как правильнее заставить все дочерние потоки (или один выборочно) отослать определённый пакет клиентам? закинул все потоки массив QVector и передаю в customEvent главного потока ид того кто отправил. правильный путь ли я выбрал? |
|
|
512es |
13.11.2008, 12:27
Сообщение
#2
|
Участник Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: 0 |
вообщем, всю голову сломал, не знаю как сделать(
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 на локалхост соединению между главным и дочерними потоками =)) бред.. |
|
|
Текстовая версия | Сейчас: 11.12.2024, 22:56 |