Излучение сигналов из других потоков

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

1 ответ

Решение

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

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

Другие вопросы по тегам