HarmonyOS 鸿蒙Next napi_resolve_deferred多线程调用闪退
HarmonyOS 鸿蒙Next napi_resolve_deferred多线程调用闪退
收到js侧调用,创建了一个Promise,并保存了起来。
napi_value result = nullptr;
napi_deferred deferred = nullptr;
napi_create_promise(env, &deferred, &result);
因为业务关系,起了个线程,处理完成之后,回调Promise,app闪退了
// App闪退
napi_value result = nullptr;
napi_create_int32(env_, 0, &result);
napi_resolve_deferred(env_, deferred_, result);
报错信息:ecma_vm cannot run in multi-thread! thread:19037 currentThread:19129
这可咋整。
更多关于HarmonyOS 鸿蒙Next napi_resolve_deferred多线程调用闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
该错误是由于回调函数必须运行在js的主线程中,其他线程发起调用会抛出该异常。,如果需要从C++线程回调ArkTS接口,建议参考下面的指导
更多关于HarmonyOS 鸿蒙Next napi_resolve_deferred多线程调用闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙系统中,napi_resolve_deferred
的多线程调用闪退问题可能源于 Node.js N-API 的使用不当或线程安全问题。确保 napi_resolve_deferred
仅在创建它的同一线程中被调用是关键。如果需要在多线程环境中处理异步操作,建议使用线程安全的消息传递机制(如事件循环的 postTask)来在正确的线程上触发回调。
此外,检查所有相关的 Native 模块和库是否已正确配置以支持多线程操作。如果问题依旧没法解决请加我微信,我的微信是itying888。
更多关于HarmonyOS 鸿蒙Next napi_resolve_deferred多线程调用闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html