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

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

问题:

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

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

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

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

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

分享
微博
QQ
微信
回复
3天前
相关问题
har包里worker如何在entry包使用
2144浏览 • 1回复 待解决
TaskPool与Worker区别
2091浏览 • 1回复 待解决
TaskPool和Worker异同点
2317浏览 • 1回复 待解决
Worker无法识别ets后缀文件
374浏览 • 1回复 待解决
HarmonyOS Worker相关问题
49浏览 • 1回复 待解决
HarmonyOS Worker使用问题
31浏览 • 1回复 待解决
Worker和TaskPool线程数量是否有限制
1946浏览 • 1回复 待解决
TaskPool和Worker之间异同点是什么
727浏览 • 1回复 待解决
Worker宿主线程必须是主线程吗?
446浏览 • 1回复 待解决
Worker线程如何销毁?
428浏览 • 1回复 待解决
Worker多线程使用,有谁知道啊?
1026浏览 • 1回复 待解决