在Qt中,關閉線程有以下幾種方法:
QThread* thread = new QThread;
...
thread->quit();
thread->wait();
QThread* thread = new QThread;
...
thread->requestInterruption();
while (!thread->isInterruptionRequested()) {
// 線程處理邏輯
}
class MyThread : public QThread {
Q_OBJECT
public:
MyThread() : m_stopFlag(false) {}
void stop() {
m_stopFlag = true;
}
protected:
void run() override {
while (!m_stopFlag) {
// 線程處理邏輯
}
}
private:
bool m_stopFlag;
};
MyThread thread;
...
thread.stop();
thread.wait();
以上是一些常見的關閉線程的方法,在實際使用中可以根據具體情況選擇合適的方法。