HarmonyOS 怎么解决worker的postMessage()频繁调用时,worker的onMessage()内的内容执行会滞后

音频录制并实时分析录制数据。在AudioCapturer的on回调中调用postMessage()传递录制数据到worker里面,然后再worker里面把录制数据缓存到一个比较大的buffer里面,同时调用分析逻辑进行分析。录制时每次的回调数据大小为2580现象:实际debug时,AudioCapturer停止录制时,on回调已经停止了但worker里面的处理逻辑还没有停止,还在执行,直到onmessage和on的次数一致才结束。

问题:

(1)worker的postMessage()是否是维护了一个队列然后对逐个进行出队执行?

(2)可以怎么样解决这种滞后情况?或者有什么别的方法可以实现不会出现输出滞后的情况。

HarmonyOS
2024-12-23 14:53:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

Worker一旦被创建则不会主动被销毁,on回调停止,不代表worker逻辑处理完成,worker会继续进行数据处理,直到任务结束。

怎么解决滞后情况:添加异步并发,等待所有数据处理完成后再输出。

分享
微博
QQ
微信
回复
2024-12-23 18:36:59
相关问题
worker线程里可以拿到项目图片吗
441浏览 • 1回复 待解决
har包里worker如何在entry包使用
3252浏览 • 1回复 待解决
TaskPool与Worker区别
3395浏览 • 1回复 待解决
HarmonyOS Worker怎么获取getContext()
1185浏览 • 1回复 待解决
TaskPool和Worker异同点
3147浏览 • 1回复 待解决
Worker无法识别ets后缀文件
1073浏览 • 1回复 待解决
HarmonyOS Worker相关问题
1094浏览 • 1回复 待解决
HarmonyOS Worker使用问题
938浏览 • 1回复 待解决
TaskPool和Worker之间异同点是什么
1769浏览 • 1回复 待解决
Worker和TaskPool线程数量是否有限制
3298浏览 • 1回复 待解决
HarmonyOS Worker不响应问题
688浏览 • 1回复 待解决
Worker宿主线程必须是主线程吗?
1397浏览 • 1回复 待解决