QThread使用探讨.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
QThread使用探讨

QThread 使用探讨QThread 使用探讨 QThread QThread 使用探讨使用探讨 QThread 似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者 本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用 google 一搜,就能搜出大量结果出来。无怪乎 Qt 的开发人员 Bradley T. Hughes 声嘶 力竭地喊 you are-you are-doingdoing--itit--wrongwrong!! you areyou are--doingdoing--itit--wrongwrong !! 和众多用户一样,初次看到这个时,感到 Bradley T. Hughes 有 些莫名奇妙, 小题大作。尽管不舒服,当时还是整理过一篇博客 QThread 的使用方法 时间过去 3 个月,尽管依然没怎么用 thread;但今天 csdn 论坛中有人问到这个 问题,想想还是尽我所能整理一下吧。提升自己,方便他人,何乐而不为呢? QThread 东西还是比较多的,而且我对底层对象了解有限,仅就一点进行展开(或 许是大家最关心的一点):QThreadQThread 中的中的 slotsslots在那个线程中执行?在那个线程中执行? QThreadQThread 中的中的 slotsslots 在那个线程中执行在那个线程中执行?? QThread::run QThread::run QThread::runQThread::run run 函数是做什么用的?Manual 中说的清楚: • run 对于线程的作用相当于 main 函数对于应用程序。它是线程的入口, run 的开始和结束意味着线程的开始和结束。 原文如下(这段话我们称为定理一定理一吧): 定理一定理一 • The run() implementation is for a thread what the main() entry point is for the application. All code executed in a call stack that starts in the run() function is executed by the new thread, and the thread finishes when the function returns. 这么短的文字一眼就看完了,可是,这是什么意思呢?又能说明什么问题呢?看 段简单代码: class Thread:public QThread { Q_OBJECT public: Thread(QObject* parent 0):QThread(parent){} public slots: void slot() { ... } signals: void sig(); protected: void run() { ...} }; int main(int argc, char** argv) { ... Thread thread; ... } 对照前面的定理,run 函数中的代码时确定无疑要在次线程中运行的,那么其他 的呢?比如 slot 是在次线程还是主线程中运行? 你想说主线程,但又心有不甘,对么? QObject::connect QObject::connect QObject::connectQObject::connect 涉及信号槽,我们就躲不过 connect 函数,只是这个函数大家太熟悉。我不好 意思再用一堆废话来描述它,但不说又不行,那么折中一下,只看它的最后一个 参数吧(为了简单起见,只看它最常用的 3 个值) 下面的列表,我们暂称为定理二定理二: 定理二定理二 • 自动连接(Auto Connection) o 这是默认设置 o 如果发

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档