Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 01.10.2011, 04:57
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Приветствую всех.Есть вопрос по QThread.Создаю примерно так:Код:MyThread : public QThread{ MyThread() { QTcpSocket socket = new QTcpSocket(); ...... ...... ...... } void socketWrite(QByteArray str) { socket->write(str); }}Во время выполнения socket->write(str) выводит ошибку, что не может сделать, т.к. родительский и дочерний потоки - разные.И действительно, this - показывает указывает на один thread, а socket->thread() - на другой.Т.е. new QtcpSocket() создается в отдельном потоке. Наверное так и должно быть?Вопрос: Как мне создать socket в моем потоке? Чтобы this и socket->thread() возвращали указатель на один и тот же thread?Или может мне socket'у указать socket->MoveToThread(this) (это только идея).UPD:Прочитал, что можно вызвать в функции run(). Но теперь не приходит SIGNAL(readyRead()). Почему? Ведь очередь сообщений теперь в моем новом потоке, а не в основном.Подскажите, пжл, чего я не догоняю?
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
QTcpSocket Guest Продолжение старого архива 0 30.09.2011 17:51
QTCPSocket Guest Продолжение старого архива 0 30.09.2011 17:42
Как раширить QTcpSocket? Guest Новый архив 2 0 28.09.2011 18:12
QThread + QTcpSocket + выделяется слишком много памяти !? Guest Новые вопросы и ответы 4 0 28.09.2011 17:59



© www.otvetnemail.ru - Форум вопросов и ответов.