gpt4 book ai didi

multithreading - 在Qt中实现用于消费操作的线程

转载 作者:行者123 更新时间:2023-12-03 13:22:31 26 4
gpt4 key购买 nike

我从没在Qt中使用过QThread,也没有在一般情况下使用过线程,所以这个话题对我而言不那么新鲜。为了避免由于一些繁重的计算而阻塞我的主应用程序,我仍然必须使用QThread。

因此,我想将大量的计算放在一个线程中,如果它们花费太多时间,我想杀死该线程(这也向我建议)。

我的线程有以下声明:

class myopThread : public QThread
{
public:
void run();
};

void myopThread::run()
{

std::cout<<"here in the thread. Are you working?"<<endl;
//include all the consuming operations here
exec();
}

我也在主应用程序中启动线程:
myopThread *t=new myopThread;
t->start();

看来行得通。现在,无论何时只要run()中的运算的计算时间大于2分钟,我还是想杀死该线程。

我不知道该如何执行。
任何帮助都将受到欢迎。

先感谢您,
玛达利娜

最佳答案

从狭narrow的角度来看,您可以使用看门狗模式来实现问题,该模式可以定期检查是否已触发线程关闭时间。
但是这种方式会带来许多错误并浪费时间。审查使用QThreadPool的可能性-忘记了自己对线程分配/销毁的管理

池的另一个好处是改善了线程创建的长时间运行。不必等待新线程,而只需重用现有线程即可。

关于multithreading - 在Qt中实现用于消费操作的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1554870/

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