首先,请原谅我,如果有一个明显的解决方案,我对线程的使用完全不熟悉(并且只对该理论有所了解)。
我正在开发一个我想要使用线程的应用程序。基本上,它检索数据并使用Qt实时显示在图表上。
我在how to use correctly QThread上遵循了这篇文章的指导原则,但后来我关注了一些细节。
基本上,我想实现暂停,这将停止实时查询和更新,然后可以在以后恢复。
目前,我的班级看起来像这样:
class DataProcessor : public QObject{
Q_OBJECT
public:
DataProcessor();
~DataProcessor();
//Internal details
public slots:
//mapped to the started() signal of a QThread
void process();
signals:
void finished();
void error(QString error);
}
我想知道如何实现暂停功能。在阅读了布鲁斯道森的帖子“赞美闲聊”之后,我注意到了一些我应该避免的方法(最重要的是,避免忙碌的等待)
然后,它不太适合我的需求,因为Bruce谈到等待另一个线程退出其关键部分。在这里,我只想暂停线程工作人员对用户输入所做的工作,并以相同的方式重新启动它。
我的问题是:如何为我的线程代码实现有效的暂停?
我想过在我的工作中使用一种标志,可以从主设置(像bool m_paused;),但一旦设置,我不知道我怎么能真正有效地暂停我的工人。
注意:这个问题不是我写的,但它描述了我的问题完全。资料来源:link