HarmonyOS worker内部无法判断自身是否已经结束

我使用worker开启了一个算法任务,但是用户可以主动取消这个任务,此时我虽然可以在主线程调用了terminate方法,但实际上worker线程并没有结束还是会继续运行,导致任务无法停止。

目前没有一个类似Java Thread的Interrupt的变量来在worker线程内部来判断自身是否已经停止了。

又因为onmessage方法在线程执行内容的时候是不会回调的,导致worker线程在执行任务的时候无法得知自己被停止了。

HarmonyOS
2024-12-25 12:20:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

目前worker无法感知到线程中断,可以考虑使用taskpool。

taskpool可以使用isCanceled接口检查当前正在运行的任务是否已取消,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-taskpool-V5#iscanceled10

如果对任务时长有要求taskpool也支持长时任务,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-taskpool-V5#longtask12

分享
微博
QQ
微信
回复
2024-12-25 13:44:30
相关问题
Worker无法识别ets后缀的文件
503浏览 • 1回复 待解决
检查某个权限是否已经授权。
850浏览 • 1回复 待解决
list组件是否支持内部移动
597浏览 • 1回复 待解决
HarmonyOS 判断wantUri是否合法
143浏览 • 1回复 待解决
HarmonyOS 判断网络是否连接
158浏览 • 1回复 待解决
HarmonyOS 怎么判断是否有网络?
283浏览 • 1回复 待解决
如何停止UIAbility自身
2095浏览 • 1回复 待解决
HarmonyOS Har静态包内部页面无法跳转
813浏览 • 1回复 待解决