Qt 线程等待退出:使用 QThread::wait() 函数
在 Qt 中,可以使用 QThread 的 wait() 函数来等待 QThread 对象的退出。wait() 函数会将当前线程阻塞,直到 QThread 对象执行完毕。
示例代码如下:
QThread* thread = new QThread();
// 将需要执行的任务放入线程中
MyObject* object = new MyObject();
object->moveToThread(thread);
// 启动线程
thread->start();
// ... 其他操作
// 等待线程退出
thread->wait();
// 清理资源
delete object;
delete thread;
在上述代码中,首先创建了一个 QThread 对象,并将需要执行的任务对象 (MyObject) 移动到线程中。然后,通过调用线程的 start() 函数启动线程。
在需要等待线程退出的地方,调用线程的 wait() 函数。该函数会阻塞当前线程,直到线程执行完毕。
最后,清理资源,删除任务对象和线程对象。
需要注意的是,wait() 函数在等待线程退出时会阻塞当前线程,因此建议在主线程中调用该函数,避免阻塞 GUI 线程或其他重要线程。
原文地址: https://www.cveoy.top/t/topic/bqcA 著作权归作者所有。请勿转载和采集!