相关问题
#鸿蒙通关秘籍#AKI和NAPI在跨线程调用JS函数中有哪些区别?
115浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何利用Native线程安全函数实现鸿蒙跨线程调用?
123浏览 • 1回复 待解决
#鸿蒙通关秘籍#在鸿蒙中如何使用N-API实现线程安全的跨线程函数调用?
97浏览 • 1回复 待解决
HarmonyOS Native C函数中有多线程交互,用napi调用会闪退
24浏览 • 1回复 待解决
新线程中调用的函数没返回,怎么结束线程?
2440浏览 • 1回复 待解决
HarmonyOS napi_call_threadsafe_function没有block调用线程
674浏览 • 1回复 待解决
利用worker子线程调用napi实现loop改写变量
1077浏览 • 1回复 待解决
如何在taskpool的线程调用类的成员函数
960浏览 • 1回复 待解决
如何使用TaskPool在子线程调用对象成员函数
444浏览 • 0回复 待解决
#鸿蒙通关秘籍# 如何使用AKI实现C++跨线程调用JS函数,并进行加10操作?
94浏览 • 0回复 待解决
HarmonyOS napi 接口线程安全咨询
354浏览 • 1回复 待解决
如何实现跨线程数据共享
292浏览 • 1回复 待解决
是否支持Context跨线程传递
1889浏览 • 1回复 待解决
JS线程通过napi创建的C++线程的处理结果,如何返回JS线程
2079浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS NEXT中使用AKI实现C++跨线程调用JS函数,提高开发效率?
94浏览 • 0回复 待解决
HarmonyOS主线程的napi_ref是否可以被worker线程使用?
465浏览 • 1回复 待解决
HarmonyOS napi_env 调用Native, Native 内启用多线程,但是env不支持多线程访问, 怎么处理?
428浏览 • 1回复 待解决
如何在C++子线程调用ArkTS方法?(线程安全)
1422浏览 • 1回复 待解决
主界面调用ts接口到native代码的加载是否都在一个线程里面?Ts和C++支持的最大线程数分别是多少
801浏览 • 1回复 待解决
HarmonyOS在C++线程上调用napi_create_ark_runtime,如何调用到js层的对象
570浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在主线程中加载系统模块并调用其函数?
115浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Node-API中实现多线程JavaScript函数调用?
106浏览 • 1回复 待解决
HarmonyOS 能够在主线程给 Worker 传递一个函数,让这个函数在 Worker 的线程中执行么?
77浏览 • 1回复 待解决
#鸿蒙通关秘籍#使用ArkTS实现跨线程任务调度
108浏览 • 1回复 待解决
如何将通过napi创建的C++线程的处理结果传递回JS线程?
549浏览 • 1回复 待解决
一、背景
napi跨线程调用,从ArkTS线程传下来某个函数,在c++子线程调用这个函数。主要使用napi_create_threadsafe_function,napi_create_reference这两个接口。
二、相关接口
NAPI中的线程安全函数
NAPI提供的简便方法,避免了线程间通信,同时可以回到主线程调用JS函数。
napi_create_threadsafe_function:创建线程安全函数,也是一个NAPI对象,包含一个JS函数,可以从多个线程调用。
延长生命周期
从TS层传下来的函数值在对应的作用域才持有他的生命周期,超出作用域需要通过引用的方式延长他的生命周期。
napi_create_reference:为Object创建一个reference,以延长其生命周期。调用者需要自己管理reference生命周期。
三、相关代码
TS侧传入回调函数
处理从TS层传下来的函数
创建线程安全函数
其他线程中调用线程安全函数
线程安全函数回调函数
四、总结