Название: Можно ли делать QWebSocket в дочернем потоке? Отправлено: neosapient1 от Январь 29, 2020, 19:58 Здравствуйте.
Пишу приложение GUI + QWebSocket. Программа принимает большой объем данных по QWebSocket, и видно как GUI тормозит. Чтобы интерфейс пользователя не тормозил, хочу вынести GUI в дочерний поток. В общем, написал тестовый класс Thread. В процессе тестов выяснил, что объект QWebSocket должен создаваться в самом дочернем потоке. В программе не работает webSocket->close(). Программа выкидывает ошибку. Как исправить? thread.h Код: #ifndef THREAD_H thread.cpp Код: #include "thread.h" main.cpp Код: #include <QCoreApplication> Ошибка Цитировать QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread QObject::connect: Cannot queue arguments of type 'QAbstractSocket::SocketState' (Make sure 'QAbstractSocket::SocketState' is registered using qRegisterMetaType().) ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 2dd1c48. Receiver '' (of type 'QNativeSocketEngine') was created in thread 9bfed4", file kernel\qcoreapplication.cpp,line 568 Спасибо. Название: Re: Можно ли делать QWebSocket в дочернем потоке? Отправлено: qate от Январь 30, 2020, 09:40 "Правильная работа с потоками в Qt" https://habr.com/ru/post/467261/
Лучше покажи минимальный пример, где QWebSocket тормозит, возможно там уже все не так. |