Como enfileirar a função lambda no loop de eventos do Qt?
Basicamente, eu preciso da mesma coisa que é feita assim em Java:
SwingUtilities.invokeLater(()->{/* function */});
Ou assim em javascript:
setTimeout(()=>{/* function */}, 0);
Mas com Qt e lambda. Então, alguns pseudocódigo:
Qt::queuePushMagic([]() { /* function */ });
Como uma complicação adicional, preciso que isso funcione em um contexto multithread. Na verdade, estou tentando executar automaticamente certos métodos no thread correto. Qual seria o código então:
SomeClass::threadSafeAsyncMethod() {
if(this->thread() != QThread::currentThread()) {
Qt::queuePushMagic([this]()=>{ this->threadSafeAsyncMethod() });
return;
}
}
Como fazer isso?