HarmonyOS 在C++中提示一个错误,说组件无法在多线程中调用

c代码报错: Fatal: ecma_vm cannot run in multi-thread! thread:34618 currentThread:34860Fault thread info

原因为:再子线程中通过napi调用了一个JS的的方法报错,麻烦提供一些解决问题的思路。

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

跨线程调用可以使用线程安全函数即可:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/use-napi-thread-safety-V5

可参考示例看一下

根据现有场景可参考:

业务线程处理完毕数据后,通过信号量,通知另外一个专门的线程,由其调用与napi_threadsafe_function安全函数配套的napi_call_threadsafe_function函数来触发js函数的调用。

分享
微博
QQ
微信
回复
1天前
相关问题
c++实例化自定义类并调用方法
346浏览 • 1回复 待解决
C++回调时,如何阻塞TS主线程
527浏览 • 1回复 待解决
HarmonyOS可以C代码创建子线程吗?
2612浏览 • 1回复 待解决
C++ 鸿蒙开发适合做什么
10835浏览 • 1回复 待解决