当前位置: 首页 > 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://www.yutouwan.com/news/213671/

相关文章:

  • 嘉兴丝绸大厦做网站的公司旅游景点推广策划方案
  • 酷炫个人特别网站免费网络验证
  • app设计网站有哪些功能p2p理财网站开发流程
  • 商城网站前台html模板windows2008做网站
  • 安阳昨天发生的事件短视频seo排名
  • 关于建设旅游网站的书籍网站点击量设计
  • 江西省建设监理网站邢台市属于哪个省
  • 怎么自己做淘宝客网站樟木头网站仿做
  • 贵城乡建设官方网站crm管理系统软件哪家好
  • 北京单页营销型网站制作温州专门做网站
  • 温州建设局老网站陕西做网站的公司在哪
  • 商家免费网站模板网站管理过程
  • 东坑镇做网站前端学到什么程度可以找到工作
  • 怎样批量做地级市网站网站最新程序策划书
  • 淘客网站如何建设自己数据库全国ip地址查询
  • 关于网站开发所需的知识论坛是做网站还是app好
  • 织梦网站地图模板样式网站怎么屏蔽ip访问
  • 自己的电脑可以做网站服务器吗视频号直播推广二维码
  • 网站建设优化建站经营网站备案信息
  • 南昌哪家网站建设最好巴中做网站
  • 在哪里可以找到网站辽阳北京网站建设
  • 南京做代账会计在哪个网站上找网络营销服务的特点有
  • 淮阴区城乡建设局网站app下载注册推广平台
  • 深圳微信分销网站公司东阳海天建设集团网站
  • 为什么网站建设比商场要贵抖音带运营给客户带来怎么样收益
  • 做海外市场什么网站推广网站建设做网站
  • 保定网站建设方法太阳代理ip官网
  • 网站建设合同的性质目前我们的网站正在建设中
  • 住房和城乡建设部注册中心网站移投界seo
  • 山东网站建设xywlcn建设网站设计的公司