[gelöst] QThread
Verfasst: 18. Dezember 2006 09:56
Hallo... ich habe ein Problem mit dem QThread. Und zwar war die Idee eigentlich, das ich mein Schreiben auslagern kann in einen Thread um so mein Hauptprogramm nicht zu blockieren.
Hier ist der Header des "Threads":
Die Implementierung der Methoden schaut so aus:
Sodalla..... in meiner Hauptklasse wird ein ojekt angelegt...
WriteProcess mProc;
und so wrid se aufgerufen
mProc.setParam(unAddress, sFile.toStdString(), this->objDS);
mProc.run();
dies scheint aber zu "blockieren".
Das Hauptformular blockiert und die Timer werden nicht mehr ausgeführt.
Ich rufe den thread in der klasse "class TestSPI : public QMainWindow", in der Methode void TestSPI::FileToDS(void) auf.
Vielen Dank schonmal für die Hilfe.
MFG
Christopher Schirner
Hier ist der Header des "Threads":
Code: Alles auswählen
#ifndef __THREADS_H__
#define __THREADS_H__
class WriteProcess : public QThread
{
private:
unsigned int unAddress;
string sString;
Prozeda_DataStick *objDS;
public:
void run(void);
void setParam(unsigned int unAddress, string sString, Prozeda_DataStick *objDS);
};
#endif
Code: Alles auswählen
#include "main.h"
void WriteProcess::run()
{
this->objDS->WriteFileToDataStick(this->unAddress, this->sString);
}
void WriteProcess::setParam(unsigned int Addr, string sStr, Prozeda_DataStick *objDS)
{
this->unAddress = Addr;
this->sString = sStr;
this->objDS = objDS;
}
WriteProcess mProc;
und so wrid se aufgerufen
mProc.setParam(unAddress, sFile.toStdString(), this->objDS);
mProc.run();
dies scheint aber zu "blockieren".
Das Hauptformular blockiert und die Timer werden nicht mehr ausgeführt.
Ich rufe den thread in der klasse "class TestSPI : public QMainWindow", in der Methode void TestSPI::FileToDS(void) auf.
Vielen Dank schonmal für die Hilfe.
MFG
Christopher Schirner