Какова лучшая практика для общения с другой веткой в ​​QT?

StackOverflow https://stackoverflow.com/questions/2752678

  •  02-10-2019
  •  | 
  •  

Вопрос

У меня есть класс QThread, который общается с основным потоком, отправляя в него Qevents.

Как лучше всего подходит для основной ветки связаться со вторым потоком?

Основная нить имеет указатель на второй.

Это было полезно?

Решение

Лучший способ общения между объектами в QT - это использовать сигналы и слоты. Это безопасный способ, который обрабатывается петлей события и не требует блокировки с вашей стороны. Вы также можете использовать события, хотя это использование кажется немного странным - событие - это уведомление о том, что происходит, а не инструмент для чата.

Вы также можете использовать примитивы потоков, такие как Qmutex, QSemaphore, QwaitCondition и QreadWritelock (то же самое, что и Qmutex, но, как следует из названия, позволяет записать либо для чтения, либо для написания, а не оба одновременно).

Вы должны прочитать документацию QT, в частности, я рекомендую вам начать с Поддержка потока в QT страница.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top