在HarmonyOS开发中taskpool使用问题咨询?

在HarmonyOS开发中taskpool使用问题咨询?https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
依据上述文档期望确认以下问题:
1.「从API version 11开始,实现任务的函数需要使用类方法时,该类必须使用装饰器@Sendable标注,且仅支持在.ets文件中使用。」指的是实现任务的函数,函数题中若需要调用类方法,则该类必须使用装饰器@Sendable标注嘛?不使用会出现什么问题呢? 如附件图片所示,RiskMtTools、RiskInitializer 是否均需要使用 @Sendable 呢?
2.「由于不同线程中上下文对象是不同的,因此TaskPool工作线程只能使用线程安全的库,例如UI相关的非线程安全库不能使用,具体请见多线程安全注意事项。」此处是引入了与UI相关的库会崩溃,还是在异步任务中执行了和UI创建、更新相关的调用时才会崩溃?

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 634
1 个回答

具体解决措施:
问题一:实现任务的函数需要使用装饰器@Concurrent标注,实现任务的函数需要使用类方法时,该类必须使用装饰器@Sendable标注,如果不使用时,当多个并发实例尝试同时更新可变Sendable数据时,会发生数据竞争。
问题二:UI主要用来展示和刷新相关UI页面,UI线程是为了更新UI的,更新了页面才能看到运行的效果,如果在子线程修改或更新UI,会导致异常。

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进