Приветствую всех.Есть вопрос по 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()). Почему? Ведь очередь сообщений теперь в моем новом потоке, а не в основном.Подскажите, пжл, чего я не догоняю?
|