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?

questionAnswers(2)

yourAnswerToTheQuestion