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

专业建站推荐seo外包收费

专业建站推荐,seo外包收费,宿州城乡建设局网站,长沙做网站美工的公司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.mmbaike.com/news/81590.html

相关文章:

  • 南充网站制作网站设计制作在哪里找
  • 如何进入wordpress数据库如何做谷歌seo推广
  • 网站营销推广的公司百度云搜索引擎入口官方
  • 建站工具缺点百度广告优化
  • 企业营业执照查询网上查询泰州seo网络公司
  • 比业设计代做网站java什么是搜索引擎竞价推广
  • 使用java做直播网站seo外包公司专家
  • 网站开发流程的意义百度统计登录
  • 北京做vr网站网站工具查询
  • 一流的聊城做网站公司百度网站排名优化
  • 深圳市龙华区房价seo广告
  • 昌吉做58网站的新闻稿撰写
  • 在线建网站seo综合查询工具下载
  • 成都手机网站建设开发seo顾问公司
  • 做网站 做手机app要学什么推56论坛
  • 网站广告怎样做流量神器
  • 我需要一个网站网页推广怎么做的
  • 个人做的网站百度搜索不到网络推广的话术怎么说
  • 织梦网站图标路径做一个官网要多少钱
  • 做旅游网站需要注意什么今天的特大新闻有哪些
  • 成都网站建设哪些公司好设计公司网站
  • 房地产公司网站模板宁波seo优化项目
  • 深圳外贸网站建设公司厦门小鱼网
  • 购物网站开发实例做网页用什么软件好
  • 网站手机页面如何做网站模板哪家好
  • 国内简洁网站昆明百度推广优化
  • rio门户网站的制作临沂网站建设公司哪家好
  • 山东省建设部网站快速网站搭建
  • 鄄城网站建设中国十大电商培训机构
  • 网站开发服务器知识网络营销策略都有哪些