我已经将我的Qthread子类化了,因此我可以在run()
方法中实现我的代码。我必须通过它一些参数,将参数传递给QThread的run()方法
我试过这样,所以这里有什么问题?
class QMyThread :
public QThread
{
public:
QMyThread();
~QMyThread(void);
virtual void start(FILE *data, int sock, int bits);
protected:
virtual void run(FILE *data, int sock, int bits);
};
运行方法;
void QMyThread::run(FILE *data, int sock, int bits)
{
//do stuff
}
启动线程:
QMyThread *thread;
thread->start(datafile, sockint, bitsint);
首先它说,该线程可能未初始化,然后在start()
法SIGSEGV error
崩溃。任何人都可以帮助我?
好吧,没有子类的QThread我怎么可以添加参数dowork()函数?以及如何从dowork函数获取一些值到gui线程? – SamuelNLP 2013-03-06 16:20:09
@SamuelNLP - 您可以通过构造函数或某种初始化方法将数据传递给工作对象。 – dtech 2013-03-06 16:54:21
我试过这样,'Worker * worker = new Worker(sock,bits);' – SamuelNLP 2013-03-06 17:05:37