Излучение сигналов из других потоков - PullRequest
2 голосов
/ 03 февраля 2010

У меня есть класс, у которого есть метод, который вызывается основным потоком и 3 другими потоками (2 QThreads и 1, созданные с помощью QtConcurrent :: run ()). Внутри этого метода я иногда излучаю сигнал. Это нормально или это может вызвать проблемы, так как я не излучаю сигналы, принадлежащие вызывающим потокам.

1 Ответ

3 голосов
/ 03 февраля 2010

Да, это совершенно нормально. QT обеспечивает межпотоковое взаимодействие для вас прозрачно. Если слот, который должен быть запущен, находится в другом потоке, то сигнал ставится в очередь и будет получен целевым потоком, когда он войдет в цикл обработки событий.

Вы можете попробовать и посмотреть, что происходит в отладчике.

...