Gründe für die Verwendung von QMetaObject :: invokeMethod beim Ausführen einer Methode aus einem Thread

Ich habe folgenden Code:

class A : public QObject
{
    Q_OBJECT
public:
    A() : QObject()
    {
         moveToThread(&t);
         t.start();
    }
    ~A()
    {
         t.quit();
         t.wait();
    }

    void doSomething()
    { 
         QMetaObject::invokeMethod(this,"doSomethingSlot");
    }
public slots:
    void doSomethingSlot()
    {
         //do something
         emit ready();
    }
signals:
    void ready();
private:
    QThread t;
}

Die Frage warum ausdoSomething Es muss ein Anruf über seinQMetaObject::invokeMethod. Ich weiß, dass es etwas mit Verbindungstyp gibt.Könnte jemand erklären, was unter der Haube ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage