当前位置: 首页 > news >正文

asp网站建设流程山东省建设安全生产协会网站

asp网站建设流程,山东省建设安全生产协会网站,建设网站哪个好,爱站网站长seo综合查询工具基础概念 qt的下线程qthread#xff0c;每个线程都有自己的事件循环exec。对象的线程上下文#xff0c;每个对象都有自己的线程上下文#xff0c;怎么理解呢#xff0c;就是该对象在哪个线程创建#xff0c;其线程上下文就是谁。每个qobject对象在创建时都有包含线程成员…基础概念 qt的下线程qthread每个线程都有自己的事件循环exec。对象的线程上下文每个对象都有自己的线程上下文怎么理解呢就是该对象在哪个线程创建其线程上下文就是谁。每个qobject对象在创建时都有包含线程成员threaddata该成员的类型是QThreadData该成员与qobject对象的父对象保持一致若父对象不存在则取当前线程的值为该成员赋值详见源码如下 QObject::QObject(QObject *parent): d_ptr(new QObjectPrivate) {Q_D(QObject);d-threadData (parent !parent-thread()) ? parent-d_func()-threadData : QThreadData::current();if (parent) {if (!check_parent_thread(parent, parent ? parent-d_func()-threadData : 0, d-threadData))parent 0;setParent(parent); }如上代码可以得出如下结论 当创建QObject时在构造函数中会根据父对象的值进行赋值规则是如果父对象存在并且父对象下thread成员存在则赋值给新创建的threadData成员否则将当前多线程的线程数据赋值给该对象threadData成员。 void QObject::moveToThread(QThread *targetThread) {Q_D(QObject);if (d-parent ! 0) {qWarning(QObject::moveToThread: Cannot move objects with a parent);return;}if (d-isWidget) {qWarning(QObject::moveToThread: Widgets cannot be moved to a new thread);return;}QThreadData *currentData QThreadData::current();QThreadData *targetData targetThread ? QThreadData::get2(targetThread) : new QThreadData(0);if (d-threadData-thread 0 currentData targetData) {// one exception to the rule: we allow moving objects with no thread affinity to the current threadcurrentData d-threadData;} else if (d-threadData ! currentData) {qWarning(QObject::moveToThread: Current thread (%p) is not the objects thread (%p)./nCannot move to target thread (%p)/n,currentData-thread, d-threadData-thread, targetData-thread);return;} ......通过如上代码可以看到movetothread的限制条件如下 如果存在父对象调用movetothread接口会失败并提示“QObject::moveToThread: Cannot move objects with a parent”如果是该对象是QWidget或者其子类不能调用movetothread因为qwidget及其子类只能在主线程中。否则会产生“QObject::moveToThread: Widgets cannot be moved to a new thread”错误如果要调用的movetothread的对象的线程上下文是一个线程A要转移的线程B如果在线程C中调用movetothread那么会失败只能在线程A调用movetothread接口。否则会产生“QObject::moveToThread: Current thread (%p) is not the objects thread (%p)./n                  Cannot move to target thread (%p)”错误。 movetothread的本质 个人理解每个线程都有自己的事件循环并不是一个程序只有一个事件循环调用movetothread后即将该对象相关的事件推送的到对应新线程的事件循环新线程会将事件推送到对应对象的event方法进行分发处理。所以只有事件类型的才可以在新线程中执行即只能通过信号槽机制来调用因为跨线程信号槽机制会触发事件推送在另外一个线程中通过函数调用的方式调用该对象的方法不会在新线程中执行而是在调用线程执行。 重点 movetothread是一种多线程的实现方式 对于事件驱动机制来说例如“定时器”或者“网络”模块他们只能在单一进程中使用例如不能一个线程创建一个定时器而在另外一个线程开始或者结束该定时器。这些操作都不可取。
http://wiki.neutronadmin.com/news/213671/

相关文章:

  • 手机网站源码做汽车养护的网站
  • 做电商网站的公司高级服装定制平台
  • 医院建设网站与托管深圳网站推广策划
  • 找到网站后台地址wordpress 在线 主题
  • 专做阀门网站什么搜索引擎搜索最全
  • 不用服务器做视频网站做网站分辨率修改
  • 创建网站的ip地址怎么获得电子商务网站建设前的分析
  • 网站个人备案做企业网站360网站建设的目标是什么
  • 海城做网站什么网站可以做全景图
  • 茌平网站制作宁夏网站建站
  • asp网站报错信息网站建立初步
  • php网站留言板模板浙江新地标建设集团网站
  • 在那个网站做直播好赚钱上海环球金融中心多少层
  • php网站开发简介魔方建站
  • 泸州市住房与城乡建设局网站手机怎么做动漫微电影网站
  • 搭建网站的步骤有哪些网站建设请示报告
  • 深圳动力网站设计公司品牌网址
  • 网站内容页怎么设计做网站哪家最好
  • 制作介绍的网站模板免费下载网页制作正版网站
  • 建立校园网站网页搭建公司
  • 工程建设监理学校网站青岛网站建设培训班
  • 怎么做国内网站吗网上推
  • js 网站测速微网站建设教学
  • 做网站应该注意些什么问题高效网站建设咨询
  • 兰州网站建设加q.479185700佛山网站开发哪家专业
  • 别墅装修排名贵阳网站seo
  • 广安做网站的公司谷歌seo排名公司
  • 网站跳转至手机端如何做google收录提交入口
  • 网站制作什么做湖北百度seo厂家
  • 什么是网站app做301网站打不开