Re[3]: прием udp в потоке
От: Zhendos  
Дата: 15.11.21 18:00
Оценка: +1
Здравствуйте, 00011011, Вы писали:

0>Здравствуйте, Zhendos, Вы писали:


Z>> Вообще наследование от QThread это плохой подход в современном Qt.

Z>> Все реализовано так, что можно обойтись без этого.

0>Подскажите какие способы есть хорошие. Отдельные потоки мне нужны только из-за требований к высокой часоте обмена, которая скороее всего подвесит GUI, если делать все в одном потоке.


Ну в потоке QThread уже все есть для того чтобы от него не наследовать, а использовать как есть,
это раньше метод run был чисто абстрактный, теперь он вызывает exec.

Теперь есть сигналы finished где можно освобождать
объекты (можно просто связать с QObject::deleteLater),
сигнал started где можно инициализировать в контексте потока.

Основная идея, которую продвигают разработчики Qt, что QThread это класс
для управления потоками, а не класс для асинхронной работы.
Нужно что-то делать в другом потоке, унаследуйте от QObject,
вызовете moveToThread, свяжите сигналы и слоты QThread с этим QObject и вперед.

Вот статья от разработчиков Qt по этому поводу: https://www.qt.io/blog/2010/06/17/youre-doing-it-wrong .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.