Signale und Threads....
Verfasst: 26. November 2009 08:32
Hi,
stehe erade vor dem Problem:
Ich starte in einer runnable das entpacken einer File....und will mich via QFileSystemWatcher an das Verzeichnis hängen um zu wissen wann sich das File geändert hat...
Auf Grund des ersten Signals würde ich gerne einen Filewatcher aufmachen-connected via
Allerdings beginnt (auf Grund von Threads das entpacken bevor ich das Signal empfange.
Ich dachte eigentlich das ich via qApp->processEvents die Eventloop abarbeiten würde und somit das abarbeiten des Signals triggern könnte.... Allerdings hilft processEvents ja nur für den CallerThread => Kann ich das denn irgendwie auf den Creatorthread (also den MainGUI thread) umbiegen?
Ausgabe:
stehe erade vor dem Problem:
Ich starte in einer runnable das entpacken einer File....und will mich via QFileSystemWatcher an das Verzeichnis hängen um zu wissen wann sich das File geändert hat...
Code: Alles auswählen
id LogReader::run()
{
// NOTE: This is the "QRunnable" part..... will run as thread in the threadpool
Extractor *extractor = new Extractor( m_strFilePath.toStdString() ) ;
extractor->initialize();
qDebug() <<"EMITTING SIGNAL FOR INFLATE PATH "
emit sig_RunnableExtractPath( QString(extractor->getExtractePath().c_str()) );
qApp->processEvents();
qDebug()<<"STARTING INFLATE";
extractor->decompress();
emit sig_FileSize(QFileInfo(extractor->getExtractePath().c_str()).size());
delete extractor;
}Code: Alles auswählen
connect(this, SIGNAL(sig_RunnableExtractPath(QString)), this, SLOT(getExtractedPath(QString)),Qt::QueuedConnection);Ich dachte eigentlich das ich via qApp->processEvents die Eventloop abarbeiten würde und somit das abarbeiten des Signals triggern könnte.... Allerdings hilft processEvents ja nur für den CallerThread => Kann ich das denn irgendwie auf den Creatorthread (also den MainGUI thread) umbiegen?
Ausgabe:
connecting returned true
before starting the thread
EMITTING SIGNAL FOR INFLATE PATH
STARTING INFLATE
Decompress successfull
after starting the thread
RECIEVED SIGNAL FROM THE RUNNABLE