QThread::sleep
时间: 2023-10-27 19:22:10 浏览: 182
QT多线程的实现方式:QThread run
QThread::sleep函数是一个静态函数,可以使当前线程暂停执行一段时间。注意到在方式一中,sleep函数被用于主线程中,导致主界面失去响应。这是因为QThread::sleep会使当前线程阻塞,包括主线程。推荐的方法是使用QThread管理的线程来执行耗时操作,这样可以避免阻塞主线程并保持主界面的响应。
另外,在QThread中,执行入口函数是run(),当run()函数返回时,线程会结束。wait()函数可以等待run()函数执行结束并返回。创建线程的方法有两种,一种是直接继承QThread,另一种是使用QObject::moveToThread()将QObject对象移到新开的QThread线程对象中。使用这两种方法,耗时操作可以在新线程中执行,从而不会阻塞主线程。例如,可以创建Worker对象,并将其移动到workerThread线程中,然后连接信号和槽来执行耗时操作并处理结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [qthread目前使用的两个方式](https://blog.csdn.net/Atago_/article/details/113365743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [线程云集(一)——QT线程](https://blog.csdn.net/qinze5857/article/details/107908050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文