gpt4 book ai didi

c++ - 为什么我不能从自身内部调用类的启动函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:33 25 4
gpt4 key购买 nike

我完全不熟悉线程编程,并且由于该类使用 QThreads,我想知道为什么我不能从自身内部调用 QThread 的 start 函数并让它的 运行 函数开始独立于另一个线程执行(当我这样做时程序似乎崩溃了)。相反,我必须从声明对象的任何地方调用 start 函数。这是为什么?

部分代码:

class ClassWithThread : public QThread
{
public:
ClassWithThread() {}
someFunction() {start();}
run()
{
//do some stuff here
}
}

我的类(class)基本上就是这样做的。当我调用 someFunction 时,程序崩溃了。但是,如果我从 someFunction 中删除 start 语句,并从程序外部调用 start,那么它就可以正常工作。

最佳答案

QThread 仅当您想扩展线程功能时才应派生,而不是像这样专门针对您的工作。这article将帮助您理解 QThread 的使用。

因此您必须创建一个 QThread 并从外部启动它,然后将一个对象移动到它来完成这项工作。阅读这个例子:http://labs.qt.nokia.com/2006/12/04/threading-without-the-headache/

希望能帮助避免此类问题

关于c++ - 为什么我不能从自身内部调用类的启动函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4436083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com