C++ (Qt)slot wait_incoming_connection(shared_ptr_to_socket) { new thread(shared_ptr_to_socket)} struct thread { thread(shared_ptr_to_socket s):socket(s) { }protected: void run() { bla bla bla with socket }private: shared_ptr_to_socket socket;};
C++ (Qt)class Thread : public QThread{public: // Конструктор отработает в родительском потоке Thread( QTcpSocket *client ) : m_socket( client ) { Q_ASSERT( m_socket ); m_socket->moveToThread( this ); } protected: void run() { // Вот здесь поток создан и мы находимся в нем // Все объекты созданные здесь будут относиться к контектсту этого потока. QTimer timer; // Уже в контексте потока connect( &timer, ... ); connect( m_socket, .... ); exec(); // Запускаем очередь обработки событий } private: QTcpSocket *m_socket;};