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

专业建站推荐seo在线外链

专业建站推荐,seo在线外链,济南mip网站建设,在线设计房屋效果图QEventLoop和QtConcurrent可以结合使用达到主线程ui不阻塞同步执行的效果,但是要小心避坑,查看如下代码: QEventLoop loop; QtConcurrent::run([&]() {doSomething();loop.quit(); }); loop.exec();上述写法存在两个问题: Q…

QEventLoop和QtConcurrent可以结合使用达到主线程ui不阻塞同步执行的效果,但是要小心避坑,查看如下代码:

QEventLoop loop;
QtConcurrent::run([&]()
{doSomething();loop.quit();
});
loop.exec();

上述写法存在两个问题:

  1. QtConcurrent::run()执行后线程立即开始执行,当doSomething()很快时,loop.quit()的执行时间可能早于loop.exec(),这样事件循环就再也不会退出了!
  2. 当doSomething因为某些原因crash时,如果没有导致程序崩溃,loop.quit无法被执行,事件循环同样无法退出。下面给出优化后的代码
QEventLoop loop;
QThread* pThread = QThread::create([&]()
{doSomething();
});
connect(pThread, &QThread::finished, &loop, &QEventLoop::quit);
pThread->start(); // 线程开始执行
loop.exec();

这里注意两个点:

  1. connect必须在start之前,这样即使线程执行很快,我们也能保证信号和槽已经被connect连接,槽函数会被执行
  2. connect默认第五个参数时Qt::AutoConnection,在信号发出时,由于信号发送线程和loop不在一个线程,类型被推断为Qt::QueuedConnection,所以finished信号生成的事件会放到事件队列中,在loop.exec()的循环中被处理,因此loop.exec一定会退出
http://www.tj-hxxt.cn/news/85781.html

相关文章:

  • 公司网站包含哪些内容上海关键词排名提升
  • 东莞网站建设怎么样免费人脉推广
  • 厦门php商城网站建设广州网页定制多少钱
  • 最大的网站模板网百度客服电话人工服务热线电话
  • 怎样做网站发帖seo推广技术
  • 论文引用网站数据 如何做注释社交网络的推广方法有哪些
  • 广东省城乡建设委员会网站百度一下网页版搜索引擎
  • 网站建设怎么寻找客户电商代运营一般收多少服务费
  • 起点网站建设网络营销的方式与手段
  • 用小程序做视频网站网络推广怎么做
  • 基因数据库网站建设常州网站推广
  • 如何做网站认证保温杯软文营销300字
  • 茶道网站开发背景成都百度网站排名优化
  • 东莞南城网站建设黄冈网站推广软件
  • 小学做试卷的网站域名备案查询
  • 自己做网站怎么优化关键词竞价排名
  • 手机网站的特效株洲seo快速排名
  • 常州做网站公司哪家好微信seo
  • 潍坊网站定制 优帮云二维码推广赚佣金平台
  • 苏州seo网站系统关键词挖掘机爱站网
  • 编程 网站建设武汉seo公司哪家好
  • 淘宝几百块钱做网站靠谱吗乔拓云网站注册
  • 商业型网站深圳专业seo外包
  • 产品网站开发流程图百度关键词快速排名方法
  • 南京百度网站建设论文收录网站有哪些
  • 怎么把自己的网站推广软文广告经典案例300
  • 做网站和web前端一样吗seo排名软件哪个好用
  • 网站开发软件开发综合查询
  • 专门做优选的网站引擎优化
  • p2p理财网站开发seo网站排名推广