Это зависит от ваших программ. Вот пример:
void MyThread::run(){
Curl * curl = new Curl();
connect( curl, SIGNAL(OnTransfer(QString)), this, SLOTS(OnTransfer(QString)) );
connect( curl, SIGNAL(OnDone()), curl, SLOTS(deleteLater()) );
curl->Download("http://google.com");
exec(); // this is an event loop in this thread, it will wait until you command quit()
}
void MyThread::OnTransfer(QString data){
qDebug() << data;
}
Без exec () OnTransfer никогда не будет вызываться. НО, если вы создаете curl вне работы с this (предполагается, что MyThread parent является основным потоком) в качестве родителя:
MyThread::MyThread(){
curl = new Curl(this);
connect( curl, SIGNAL(OnTransfer(QString)), this, SLOTS(OnTransfer(QString)) );
start();
}
void MyThread::run(){
curl->Download("http://google.com");
}
Этот будет работать, как вы ожидали. Будет вызван OnTransfer.