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

2345影视大全最新版2021下载安装关键字优化价格

2345影视大全最新版2021下载安装,关键字优化价格,福建省建设工程信息网站,佛山做网站哪家好1. 实现功能 QML项目中,点击一个按键后,运行一段比较耗时的程序,此时ui线程会卡住。如何避免ui线程卡住。 2. 单线程(会卡住) 2.1 界面 2.2 现象 点击delay btn后,执行耗时函数(TestJs.func…

1. 实现功能

QML项目中,点击一个按键后,运行一段比较耗时的程序,此时ui线程会卡住。如何避免ui线程卡住。

2. 单线程(会卡住)

2.1 界面

在这里插入图片描述

2.2 现象

  • 点击delay btn后,执行耗时函数(TestJs.func_delay())界面阻塞(阻塞了12s),等待运行完成后,点击ui btn才能响应。
qml: 2024-11-14 09:48:29 ui thread
qml: 2024-11-14 09:48:30 click delay btn
qml: delay thread 2024-11-14 09:48:42
qml: 2024-11-14 09:48:42 ui thread

2.3 main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import "test.js" as TestJsWindow {width: 640height: 480visible: truetitle: qsTr("Thread")Row{spacing: 20Button{width: 200height: 100text: "ui btn"onClicked: {console.log(Qt.formatDateTime(new Date(), "yyyy-MM-dd HH:mm:ss"), "ui thread")}}Button{width: 200height: 100text: "delay btn"onClicked: {console.log(Qt.formatDateTime(new Date(), "yyyy-MM-dd HH:mm:ss"), "click delay btn")TestJs.func_delay()}}}
}

2.4 test.js


//耗时函数
function func_delay() {var cnt = 0;for(let i=0; i<1000000000; i++){cnt++;}console.log("delay thread", Qt.formatDateTime(new Date(),"yyyy-MM-dd HH:mm:ss"))
}

3. 多线程(WorkerScript方式)

3.1 界面

在这里插入图片描述

3.2 现象

  • 将耗时函数(func_delay())放到WorkerScript.onMessage中执行,这样ui线程不会阻塞。
  • ui线程与delay线程直接可以通讯,发送通过sendMessage,接收通过onMessage
qml: 2024-11-14 09:54:11 ui thread
qml: 2024-11-14 09:54:11 click delay btn-1
qml: 2024-11-14 09:54:11 click delay btn-2
qml: 2024-11-14 09:54:12 ui thread
qml: 2024-11-14 09:54:13 ui thread
js: delay thread 2024-11-14 09:54:23
js: ui thread -> delay thread:  Hello, I am ui thread.
qml: delay thread -> ui thread:  Hello, I am delay thread.

3.3 main.qml

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import "test.js" as TestJsWindow {width: 640height: 480visible: truetitle: qsTr("Thread")Row{spacing: 20Button{width: 200height: 100text: "ui btn"onClicked: {console.log(Qt.formatDateTime(new Date(), "yyyy-MM-dd HH:mm:ss"), "ui thread")}}Button{width: 200height: 100text: "delay btn"onClicked: {console.log(Qt.formatDateTime(new Date(), "yyyy-MM-dd HH:mm:ss"), "click delay btn-1")//发送数据myWorker.sendMessage({'msg': 'Hello, I am ui thread.'})console.log(Qt.formatDateTime(new Date(), "yyyy-MM-dd HH:mm:ss"), "click delay btn-2")}}WorkerScript{id: myWorkersource: "test.js"//接收数据onMessage: {console.log("delay thread -> ui thread: ", messageObject.msg)}}}
}

3.4 test.js


function func_delay() {var cnt = 0;for(let i=0; i<1000000000; i++){cnt++;}console.log("delay thread", Qt.formatDateTime(new Date(),"yyyy-MM-dd HH:mm:ss"))
}WorkerScript.onMessage = function(message){func_delay()console.log("ui thread -> delay thread: ", message.msg)//发送数据WorkerScript.sendMessage({'msg': 'Hello, I am delay thread.'})
}

参考

Qt 之 qml WorkerScript使用

http://www.yayakq.cn/news/991365/

相关文章:

  • 西安网站建设服务商网络营销能做什么
  • 网页的网站建设在哪里中国建设银行股份有限公司
  • 用什么软件搭建网站源码成品软件十大免费
  • 怎样做类似于优酷的视频网站淘宝客论坛响应式php网站下载
  • 家装网站建设公司哪家好搜索建站
  • 做网站与做游戏那个好网站空间 默认文档
  • 网站编排类型大连零基础网站建设教学哪里有
  • 广州seo排名收费网站seo的方法
  • 男女做暖暖的网站大全公司注册地址的要求
  • 广州番禺哪个公司建网站比较好服务器免备案
  • 珠海网站建设易搜互联wordpress申请网站
  • 搭建手机网站工业设计网站下载
  • 网站备案专员微信里的网站怎么做
  • 伍菲网站建设重庆网站设计制造厂家
  • 1688网站怎么做分销wordpress 自定义数据表
  • 网站建设与维护高考试卷wordpress 导航栏效果
  • 网页制作与网站建设教程视频wordpress微信群机器人
  • 做营销的网站网站支付怎么做虚拟币支付
  • 办公家具网站模板完成公司网站建设
  • dedecms网站地图前台路径不修改html5网站引导页
  • 教做月嫂的网站有吗程序开发步骤不包括
  • 纹身网站设计在线简历制作网站免费
  • 凡科建站官网怎么样app设计开发要多少钱
  • 苏州吴中区做网站价格济南个人急售二手房
  • 未来做那些网站能致富wordpress 调用文章标签
  • 云南做网站费用中国建设银行官网站电脑版
  • 织梦网站如何做优化学校网站建设的验收单
  • 广西圣泰建设工程有限公司网站龙之向导外贸网站
  • 网站需要去工信部做备案吗黄岛建设局网站
  • 西部数码网站核验单下载如何做电影网站赚钱