我对线程编程完全陌生,而且由于该类使用的是 QThreads,我想知道为什么我不能start
从自身内部调用 QThread 的函数并让它的run
函数独立于另一个线程开始执行(当我做这个)。相反,我必须从声明对象的任何地方调用 start 函数。为什么是这样?
一些代码:
class ClassWithThread : public QThread
{
public:
ClassWithThread() {}
someFunction() {start();}
run()
{
//do some stuff here
}
}
这基本上就是我的班级所做的。当我调用someFunction
程序崩溃。如果我从中删除该start
语句someFunction
,并start
从程序外部调用,那么它可以正常工作。