Сообщение Re[3]: Помогите с вопросом от 03.04.2024 10:04
Изменено 09.04.2024 11:26 SaZ
Re[3]: Помогите с вопросом
Здравствуйте, milkpot, Вы писали:
M>Здравствуйте, SaZ, Вы писали:
SaZ>>Очень тяжело читать такой код (особенно явные сравнения с true/false). Можете убрать всё ненужное и просто сделать пересылку массива байт по udp? Отлаживать пробовали (убедиться что слоты вызываются и т.п.) отладчиком или хотя бы выводом в консоль? Зачем вам conditional variable?
M>Работает только посылка по UDP — функция writeToUdp. readPendingDatagrams не запускается (нет отладочных печатей). Она запускалась
M>только когда находилась в gui классе. Отладчиком не получается. У меня mingw отладчик в QtCreator.
M>...
Подожду пока вы почините отладчик и всё-таки ответите на вопрос, касательно QWaitCondition — зачем он нужен? (есть чуйка, он не нужен). И покажите как вы потоки с воркерами стартуете?
А пока попробуйте покапать в следующую сторону: инстансы всяких стримов, включая QUdpSocket не нужно создавать в конструкторе воркера. А то получается что вы их создаёте в одном потоке, а потом начинаете использоват в другом. Он типа должно работать после moveToThread, но по факту, именно со стримами, есть платформозависимые нюансы. Вообще ничего не делайте в конструкторах воркеров.
M>Здравствуйте, SaZ, Вы писали:
SaZ>>Очень тяжело читать такой код (особенно явные сравнения с true/false). Можете убрать всё ненужное и просто сделать пересылку массива байт по udp? Отлаживать пробовали (убедиться что слоты вызываются и т.п.) отладчиком или хотя бы выводом в консоль? Зачем вам conditional variable?
M>Работает только посылка по UDP — функция writeToUdp. readPendingDatagrams не запускается (нет отладочных печатей). Она запускалась
M>только когда находилась в gui классе. Отладчиком не получается. У меня mingw отладчик в QtCreator.
M>...
Подожду пока вы почините отладчик и всё-таки ответите на вопрос, касательно QWaitCondition — зачем он нужен? (есть чуйка, он не нужен). И покажите как вы потоки с воркерами стартуете?
А пока попробуйте покапать в следующую сторону: инстансы всяких стримов, включая QUdpSocket не нужно создавать в конструкторе воркера. А то получается что вы их создаёте в одном потоке, а потом начинаете использоват в другом. Он типа должно работать после moveToThread, но по факту, именно со стримами, есть платформозависимые нюансы. Вообще ничего не делайте в конструкторах воркеров.
Re[3]: Помогите с вопросом
Здравствуйте, milkpot, Вы писали:
M>Здравствуйте, SaZ, Вы писали:
SaZ>>Очень тяжело читать такой код (особенно явные сравнения с true/false). Можете убрать всё ненужное и просто сделать пересылку массива байт по udp? Отлаживать пробовали (убедиться что слоты вызываются и т.п.) отладчиком или хотя бы выводом в консоль? Зачем вам conditional variable?
M>Работает только посылка по UDP — функция writeToUdp. readPendingDatagrams не запускается (нет отладочных печатей). Она запускалась
M>только когда находилась в gui классе. Отладчиком не получается. У меня mingw отладчик в QtCreator.
M>...
Подожду пока вы почините отладчик и всё-таки ответите на вопрос, касательно QWaitCondition — зачем он нужен? (есть чуйка, он не нужен). И покажите как вы потоки с воркерами стартуете?
А пока попробуйте покопать в следующую сторону: инстансы всяких стримов, включая QUdpSocket не нужно создавать в конструкторе воркера. А то получается что вы их создаёте в одном потоке, а потом начинаете использоват в другом. Он типа должно работать после moveToThread, но по факту, именно со стримами, есть платформозависимые нюансы. Вообще ничего не делайте в конструкторах воркеров.
M>Здравствуйте, SaZ, Вы писали:
SaZ>>Очень тяжело читать такой код (особенно явные сравнения с true/false). Можете убрать всё ненужное и просто сделать пересылку массива байт по udp? Отлаживать пробовали (убедиться что слоты вызываются и т.п.) отладчиком или хотя бы выводом в консоль? Зачем вам conditional variable?
M>Работает только посылка по UDP — функция writeToUdp. readPendingDatagrams не запускается (нет отладочных печатей). Она запускалась
M>только когда находилась в gui классе. Отладчиком не получается. У меня mingw отладчик в QtCreator.
M>...
Подожду пока вы почините отладчик и всё-таки ответите на вопрос, касательно QWaitCondition — зачем он нужен? (есть чуйка, он не нужен). И покажите как вы потоки с воркерами стартуете?
А пока попробуйте покопать в следующую сторону: инстансы всяких стримов, включая QUdpSocket не нужно создавать в конструкторе воркера. А то получается что вы их создаёте в одном потоке, а потом начинаете использоват в другом. Он типа должно работать после moveToThread, но по факту, именно со стримами, есть платформозависимые нюансы. Вообще ничего не делайте в конструкторах воркеров.