Как лучше всего общаться с другим потоком в Qt? - PullRequest
3 голосов
/ 02 мая 2010

У меня есть производный класс QThread, который связывается с основным потоком, отправляя ему QEvents.

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

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

1 Ответ

5 голосов
/ 02 мая 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...