分类:
2011-03-25 12:17:16
最近在QT4下使用线程的过程中,遇到这样一个问题:
"QThread: Destroyed while thread is still running"
class MyThread :public QThread
{
public:
virtual void run();
private:
};
当在一个类的初始化函数中,声明:
MyThread mythread;
mythread.start();
问题是mythread的生命期马上就结束了, 程序会提示你"QThread: Destroyed while thread is still running", 然后过一会崩溃掉.因为退出初始化函数,mythread的生命期就会立即结束;
如果用new Thread()的话, 释放又需要很多额外的代码.
如果是把这个thread当作成员函数的话(C++ gui programming里14.1章这样做), 无法解决多次启动的问题.比如每隔5s要启动一次这个thread, 但是实际只有一个thread实例.