HarmonyOS Worker线程中,如何保存成员对象?
当用Worker创建了一个线程之后,我想在worker里始终持有一个对象,如下:
const workerPort: ThreadWorkerGlobalScope = worker.workerPort;  
  
const testBean: TestBean = new TestBean()  
  
workerPort.onmessage = (e: MessageEvents) => {  
  testBean.count ++;  
})其中TestBean结构如下:
class TestBean {  
    count: number = 0  
}结果我发了10个消息,结果发现testBean里的count每次都是0,说明Worker中没有持有这个对象。
想问问老师怎么实现这个需求呢?
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 如何使用TaskPool在子线程调用对象成员函数 
1761浏览  • 1回复 待解决
HarmonyOS 在Worker线程中如何创建一个RdbStore对象 
1023浏览  • 1回复 待解决
HarmonyOS Worker主线程和子线程共享对象问题 
1358浏览  • 1回复 待解决
Worker线程如何销毁? 
1186浏览  • 1回复 待解决
如何在Worker中开启多级子线程 
1294浏览  • 1回复 待解决
Worker线程内存如何共享 
3473浏览  • 1回复 待解决
如何在taskpool的线程调用类的成员函数 
2011浏览  • 1回复 待解决
宿主线程如何向worker子线程发送消息? 
1435浏览  • 1回复 待解决
如何创建一个worker线程 
2157浏览  • 1回复 待解决
#鸿蒙通关秘籍#主线程和Worker线程在线程模型中承担什么职责? 
1207浏览  • 1回复 待解决
#鸿蒙通关秘籍#线程模型中,主线程和TaskPool Worker线程有啥区别? 
1444浏览  • 1回复 待解决
HarmonyOS  worker线程和主线程支持内存共享 
1685浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkTS中创建和管理Worker线程? 
1642浏览  • 2回复 待解决
Native侧如何获取ArkTS侧Object对象及其成员变量 
4092浏览  • 1回复 待解决
HarmonyOS 类成员无法在线程之间共享数据 
1032浏览  • 1回复 待解决
HarmonyOS 能够在主线程给 Worker 传递一个函数,让这个函数在 Worker 的线程中执行么? 
1052浏览  • 1回复 待解决
HarmonyOS中的多线程如何做到数据对象共享? 
1165浏览  • 0回复 待解决
ets中创建Worker线程,创建Worker传入的url文件只能是js后缀吗? 
5548浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在Worker子线程中实现文件解压并将结果返回主线程? 
1505浏览  • 1回复 待解决
HarmonyOS Worker 与主线程通信问题 
1307浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何处理ArkTS中的Worker线程文件路径? 
1530浏览  • 1回复 待解决
HarmonyOS 主线程中无法调用工作线程中实例化对象的方法 
995浏览  • 1回复 待解决
HarmonyOS  AppStorage是否支持在worker线程使用 
1123浏览  • 1回复 待解决
Worker的宿主线程必须是主线程吗? 
1468浏览  • 1回复 待解决
HarmonyOS 怎么判断worker线程创建了几个? 
875浏览  • 0回复 待解决





















可以考虑使用ShareArrayBuffer,关键代码: 主线程中:
sharedArrayBuffer可共享对象可以存储任何类型的数据,文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/serialization-support-types-V5#可共享对象
代码:
主线程:
worker:
这个是上面demo的实现参考最后一部分Stage模型配置:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-worker-V5#stage模型
1.worker线程ets:(路径:ets/pages/workers/worker1.ets)
2. 主线程页面ets:(路径:ets/pages/Index.ets)
3. build-profile.json5(路径:ets/build-profile.json5)buildOption下添加: