HarmonyOS Next开发学习手册——Node-API接口从异步线程向ArkTS线程投递指定优先级和入队方式的的任务

Node-API中的napi_call_threadsafe_function_with_priority接口的功能是从异步线程向ArkTS线程投递任务,底层队列会根据任务的优先级和入队方式来处理任务。

函数说明

napi_status napi_call_threadsafe_function_with_priority(napi_threadsafe_function func,
                                                        void *data,
                                                        napi_task_priority priority,
                                                        bool isTail);
参数 说明
func 线程安全方法
data 异步线程期望传递给主线程的数据
priority 指定任务的优先级 napi_task_priority
isTail 指定任务的入队方式, true代表任务从队列的尾部入队,false代表任务从队列的头部入队。

场景介绍

异步线程向ArkTS线程投递的任务需要根据任务指定的优先级和入队方式进行处理。

调用异步的ArkTS接口示例

示例代码

  • 模块注册
 // hello.cpp
 #include "napi/native_api.h"
 #include <string.h>
 #include <stdlib.h>

 struct CallbackData {
     napi_threadsafe_function tsfn;
     napi_async_work work;
 };
 // ArkTS线程的回调实现
 static void CallJs(napi_env env, napi_value jsCb, void *context, void *data) {
     if (env == nullptr) {
         return;
     }
     napi_value resultNumber = nullptr;
     napi_value undefined = nullptr;
     napi_get_undefined(env, &undefined);
     napi_value number1 = nullptr;
     napi_create_int32(env, 12, &number1);
     napi_value number2 = nullptr;
     napi_create_int32(env, 15, &number2);
     napi_value argv[2] = {number1, number2};
     napi_call_function(env, undefined, jsCb, 2, argv, &resultNumber);
     int32_t res = 0;
     napi_get_value_int32(env, resultNumber, &a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值