HarmonyOS worker间数据传递

在使用worker的过程中,主线程通过postMessage(message: Object, options?: PostMessageOptions): void函数向其他线程发送消息,如果传入options参数转移对象所有权,那么还会有16M的限制吗?

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

Worker子线程和宿主线程之间的通信是基于消息传递的,Worker通过序列化机制与宿主线程之间相互通信,完成命令及数据交互。序列化传输的数据量大小限制为16MB。关于worker的更多问题可以参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/worker-introduction-V5

关于补充问题:

1.使用可转移对象Arraybuffer,没有明确的大小限制 。

2.使用Worker模块时,需要在主线程中注册onerror接口,否则当worker线程出现异常时会发生jscrash问题, 参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-worker-V5#onerror9

3.参考如下代码获取序列化数据字节数,转换后判断是否大于16M 。

import { util } from '@kit.ArkTS';
let textEncoder: util.TextEncoder = new util.TextEncoder();
let uint8array: Uint8Array = textEncoder.encodeInto(this.jsonString)
const byteArray = Array.from(uint8array);
console.info("数据字节数=" + byteArray.length)
分享
微博
QQ
微信
回复
7天前
相关问题
HarmonyOS 数据传递问题
530浏览 • 1回复 待解决
HarmonyOS router.getParams()数据传递
569浏览 • 1回复 待解决
HarmonyOS 关于Provide数据传递问题咨询
463浏览 • 1回复 待解决
多hap调用及数据传递,有人知道吗?
1092浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
559浏览 • 1回复 待解决
HarmonyOS 视频流数据传
529浏览 • 1回复 待解决
解决页面间数据不同步问题
1067浏览 • 1回复 待解决