相关问题
 #鸿蒙通关秘籍#如何在鸿蒙开发中实现数据的多线程处理并更新UI? 
1388浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现懒加载评论数据并更新UI? 
1361浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中检测Worker线程异常并防止应用崩溃? 
1113浏览  • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS NEXT中使用ArkUI进行动态UI更新? 
1619浏览  • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙应用中如何使用UI主线程调用多线程方法? 
1426浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在UIAbility中更新资源和数据 
1377浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中应用前景模糊效果? 
1236浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙ArkUI中创建并显示自定义弹窗? 
1289浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在EntryAbility.ets中监控屏幕方向并更新状态? 
1006浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在Worker子线程中实现文件解压并将结果返回主线程? 
1505浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何处理页面返回并传递数据? 
1208浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙UI开发中应用CSS伪类? 
1202浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS应用中存储数据? 
1272浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙NEXT应用中动态更新显示网络状态? 
1762浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中基于ArkUI的网格布局中显示数据? 
1241浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中实现模态弹窗? 
1483浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中使用标准化数据通路实现数据更新? 
2213浏览  • 1回复 待解决
#鸿蒙通关秘籍# 如何在鸿蒙应用开发中避免在主线程执行耗时网络请求以提高UI流畅度? 
947浏览  • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中创建视频组件并加载本地视频? 
1274浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在TaskPool子线程中预加载So库并调用其函数? 
993浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中创建并获取键值型数据库 
1232浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkUI中使用makeObserved处理Sendable数据? 
1243浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在应用中接入数据备份恢复功能? 
1786浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在应用中处理数据库的数据迁移? 
1401浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在TaskPool子线程中预加载.so库并通过句柄调用函数? 
1510浏览  • 1回复 待解决





















在鸿蒙系统的ArkUI中,能够在子线程中处理数据,并在更新UI时做到线程安全。使用makeObserved来将Sendable类型的数据变为可观察对象,允许你在数据变化时自动更新UI。以下是实现方法:
typescript import { taskpool } from '@kit.ArkTS'; import { SendableData } from './SendableData'; import { UIUtils } from '@kit.ArkUI';
@Concurrent function threadGetData(param: string): SendableData { let ret = new SendableData(); console.info(
Concurrent threadGetData, param ${param}); ret.name = param + "-o"; ret.age = Math.floor(Math.random() * 40); ret.likes = Math.floor(Math.random() * 100); return ret; }@Entry @ComponentV2 struct Index { @Local send: SendableData = UIUtils.makeObserved(new SendableData());
build() { Column() { Text(this.send.name) Button("change name").onClick(() => { this.send.name += "0"; })
} }
这个方案确保了数据在子线程的处理结果可以通过makeObserved在UI线程中被观察,从而做到数值变化时UI同步更新。