【发布时间】:2014-03-27 02:01:56
【问题描述】:
Qt 线程在运行时立即失败,这是我的标题:
class Stepper1_run : public QThread
{
public:
void system_run();
private:
void run();
};
这是 .cpp 代码:
void Stepper1_run::run(){
//do whatever
}
void Stepper1_run::system_run()
{
Stepper1_run stepper1_run;
stepper1_run.start();
}
当从 gui 中单击按钮时调用它:
void MainWindow::on_button_run_clicked()
{
Stepper1_run stepper1_run;
stepper1_run.system_run();
}
最初,system_run() 函数本身只是一个函数,我被告知它需要是类的成员,否则线程将立即关闭。不幸的是,该函数在运行时仍会立即关闭,并出现错误:`QThread: Destroyed while thread is still running" 并且程序退出。
发生这种情况的原因是什么?
【问题讨论】:
-
除非你想重新定义 Qt 如何使用线程,否则你不应该从 QThread 继承。看看这篇文章,它告诉你为什么你做错了:blog.qt.digia.com/blog/2010/06/17/youre-doing-it-wrong
标签: c++ multithreading qt qthread