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线程里可以拿到项目图片吗
458浏览 • 1回复 待解决
har包里worker如何在entry包使用
3299浏览 • 1回复 待解决
TaskPool与Worker区别
3412浏览 • 1回复 待解决
HarmonyOS Worker怎么获取getContext()
1203浏览 • 1回复 待解决
TaskPool和Worker异同点
3169浏览 • 1回复 待解决
Worker无法识别ets后缀文件
1103浏览 • 1回复 待解决
HarmonyOS Worker相关问题
1108浏览 • 1回复 待解决
HarmonyOS Worker使用问题
965浏览 • 1回复 待解决
Worker线程如何销毁?
1122浏览 • 1回复 待解决
Worker和TaskPool线程数量是否有限制
3330浏览 • 1回复 待解决
TaskPool和Worker之间异同点是什么
1790浏览 • 1回复 待解决
HarmonyOS Worker不响应问题
699浏览 • 1回复 待解决