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

天津网站推广有哪些石家庄城乡建设网站

天津网站推广有哪些,石家庄城乡建设网站,网页视频制作软件,西安排名seo公司TaskPool方法不会阻塞UI#xff0c;如果做上传图片的功能加载Loading记得使用TaskPool#xff0c;Promise、Async/Await都会阻塞UI 【引言】 发现Promise可能会阻塞UI#xff0c;尝试使用async或await#xff0c;但发现它们仍然会导致阻塞。后来看到chaoxiaoshu回复的Tas…TaskPool方法不会阻塞UI如果做上传图片的功能加载Loading记得使用TaskPoolPromise、Async/Await都会阻塞UI 【引言】  发现Promise可能会阻塞UI尝试使用async或await但发现它们仍然会导致阻塞。后来看到chaoxiaoshu回复的TaskPool方法发现使用该方法后UI不再阻塞。因此我特意编写了一个加载弹窗进行测试结果同样显示只有TaskPool方法不会阻塞UI。 【代码示例】 import { taskpool } from kit.ArkTS;Component export struct MyDialog_1 {Prop dialogID: stringState title: string 加载中...build() {Stack() {Column() {LoadingProgress().color(Color.White).width(100).height(100)Text(this.title).fontSize(18).fontColor(0xffffff).margin({ top: 8 }).visibility(this.title ? Visibility.Visible : Visibility.None)}}.onClick(() {getContext(this).eventHub.emit(this.dialogID, 关闭弹窗)}).width(180).height(180).backgroundColor(0x88000000).borderRadius(10).shadow({radius: 10,color: Color.Gray,offsetX: 3,offsetY: 3})} }Entry Component struct Page28 {State time3: string State isShowLoading: boolean falsebuild() {Stack() {Column({ space: 20 }) {Button(【方案一】测试Promise).type(ButtonType.Capsule).onClick(() {this.isShowLoading truethis.time3 loading...console.log(start call promise)testPromise(100000000).then((time) {this.time3 耗时${time}console.log(promise then)this.isShowLoading false})console.log(end call promise)})Button(【方案二】测试async await).type(ButtonType.Capsule).onClick(() {this.isShowLoading truethis.time3 loading...console.log(start call promise)this.testPromise()console.log(end call promise)})Button(【方案三】测试taskpool).type(ButtonType.Capsule).onClick(() {this.isShowLoading truethis.time3 loading...let task: taskpool.Task new taskpool.Task(concurrentFunc, 100000000);taskpool.execute(task);task.onReceiveData((time: number) {this.time3 耗时${time};console.log(end)this.isShowLoading false})})Text(this.time3)}.alignItems(HorizontalAlign.Start)MyDialog_1().visibility(this.isShowLoading ? Visibility.Visible : Visibility.None)}.width(100%).height(100%)}//耗时操作async testPromise() {let time await testPromise(100000000)time new Date().getTime() - timethis.time3 耗时${time}毫秒console.log(promise then)this.isShowLoading false} }function testPromise(count: number): Promisenumber {return new Promisenumber((resolve) {let time Date.now().valueOf()let num 0for (let i 0; i count; i) {num}time Date.now().valueOf() - timeresolve(time)}) }Concurrent function concurrentFunc(count: number): void {let time Date.now().valueOf()let num 0for (let i 0; i count; i) {num}time Date.now().valueOf() - timetaskpool.Task.sendData(time); } 【方案一Promise】 优点 易于理解Promise的语法简单易于理解和使用。 链式调用可以通过.then进行链式调用处理多个异步操作。 缺点 阻塞UI在执行耗时任务时Promise会阻塞UI线程导致Loading弹窗不能及时显示。 【方案二Async/Await】 优点 同步写法Async/Await 使异步代码看起来像同步代码更加直观。 错误处理可以使用try/catch块处理错误使代码更加清晰。 缺点 阻塞UI与Promise类似Async/Await在执行耗时任务时仍会阻塞UI线程导致Loading弹窗不能及时显示。 【方案三TaskPool】 优点 真正的异步TaskPool可以将耗时任务放到独立的线程中执行不会阻塞UI线程保证了UI的流畅性。 数据通信通过task.onReceiveData可以方便地接收任务结果。 缺点 复杂度增加引入了多线程处理增加了代码的复杂度和维护成本。 【使用注意事项】 任务复杂度 如果任务较为简单且不会长时间阻塞UI可以考虑使用Promise或Async/Await。 如果任务较为复杂且耗时较长建议使用TaskPool以保证UI的流畅性例如上传图片时显示加载中。 代码可读性 Promise和Async/Await的语法较为简单适合初学者使用。 TaskPool需要对多线程有一定了解适合有经验的开发者。 性能考虑 TaskPool在处理大量或耗时任务时表现更优可以显著提升应用性能。 Promise和Async/Await在小任务场景下更简洁高效。 【总结】 选择合适的异步操作方案至关重要。Promise和Async/Await适合处理简单的异步任务而TaskPool则在处理复杂耗时任务时表现出色。根据实际需求选择最适合的方案能有效提升开发效率和用户体验。希望本文对您在异步操作的选择和使用上有所帮助。
http://www.w-s-a.com/news/580229/

相关文章:

  • 江西建设工程信息网站重庆网站推广大全
  • 南浔区住房城乡建设局网站网页设计基础学什么
  • 萧山做网站的企业网站建设 西安
  • 江西省城乡建设厅网站百度站长资源平台
  • 本地搭建linux服务器做网站免费查企业信息查询
  • 电商网站建设与运营网上购物哪个网站最好
  • 做app做网站从何学起网站设计需要什么证
  • 设计网站最重要的是要有良好的短网址还原
  • 大连建设银行招聘网站做seo是要先有网站吗
  • 中山做网站的wordpress建站教程百科
  • 湛江专业网站制作做网站需要工具
  • 做音箱木工网站吉林平安建设网站
  • 品牌网站建设咨询灯光设计网站推荐
  • 温州网站运营打开百度一下网页版
  • 网站有情链接怎么做住房公积金个体工商户
  • 内蒙古网站开发网站开发验收资料
  • 温州网站建设首选国鼎网络网络营销方法可分为两类
  • 做张家界旅游网站多少钱企业推广网络营销
  • 代做毕设网站推荐广东手机微信网站制作
  • 福州建设工程质量监督网站专业做公司宣传网站的
  • 百度云建站教程网站工程师是做什么的
  • 手机在线制作网站一级消防工程师考试试题及答案
  • 网站设计的需求网页制作教程和素材
  • 徐州网站建设 网站推广WordPress 文章编辑
  • 做什么网站比较受欢迎软件商店下载安装2023版本最新
  • 做ip资讯的网站怎么在wordpress中套用同行网页
  • 医院网站如何备案东莞优化公司收费
  • 罗村网站开发适合ps做图的素材网站有哪些
  • 网站建设中 油财宝企业网址怎么整
  • asp.net空网站php网站开发要学什么