У меня есть статическая функция: static void lancerServeur(std::atomic<bool>& boolServer)
, эта функция вынуждена быть статической, потому что я запускаю ее в потоке, но из-за этого я не могу выдать сигнал в этой функции. Вот что я пытаюсь сделать:
void MainWindow::lancerServeur(std::atomic<bool>& boolServer){
serveur s;
StructureSupervision::T_StructureSupervision* bufferStructureRecu;
while(boolServer){
bufferStructureRecu = s.receiveDataUDP();
if(bufferStructureRecu->SystemData._statutGroundFlight != 0){
emit this->signal_TrameRecu(bufferStructureRecu);//IMPOSSIBLE TO DO
}
}
}
Есть ли способ излучать мой сигнал?
Спасибо.
QObject
в поток — это последний шаг после того, как все остальное работает, и это делается для уменьшения задержки. Поточно-безопасные методы не обязательно должны быть статическими. Они просто должны быть потокобезопасными или слотами, и тогда вы сможете безопасно вызывать слоты изQObject
, который находится в потоке (черезinvokeMethod
или через соединение сигнал-слот). - person Kuba hasn't forgotten Monica   schedule 30.06.2014