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