如何判断一个C++/QT线程是否正在执行任务
在使用Qt框架中的QThread类创建线程时,可以通过以下方法来判断线程是否正在执行任务:
首先,在自定义的线程类中添加一个标志变量,用于表示线程是否正在执行任务。
然后,在任务开始和结束的地方分别设置和清除该标志变量。
最后,可以通过读取标志变量的值来判断线程是否正在执行任务。
// 在自定义的线程类中添加一个标志变量
class MyThread : public QThread
{
public:
MyThread() : running(false) {}
// 判断线程是否正在执行任务
bool isRunning() const { return running; }
protected:
void run() override
{
// 任务开始时设置标志变量
running = true;
// 执行任务的代码
// 任务结束时清除标志变量
running = false;
}
private:
bool running;
};
在主线程中,可以通过调用isRunning()方法来判断线程是否正在执行任务:
MyThread thread;
thread.start();
// 判断线程是否正在执行任务
if (thread.isRunning())
{
// 线程正在执行任务
}
362

被折叠的 条评论
为什么被折叠?



