HarmonyOS鸿蒙Next NAPI中调用C代码,出现了主线程卡死问题该如何处理?

HarmonyOS鸿蒙Next NAPI中调用C代码,出现了主线程卡死问题该如何处理?

HarmonyOS NAPI中调用C代码,出现了appfreeze: com.xx.xx  THREAD_BLOCK_6S at 20240116102253

![cke_1255.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/054/435/877/0260086000054435877.20240116103307.63999425837745016059852700807962:50001231000000:2800:BBCD16A951DED0D82A4320628FB6E05EBADF9B75D23E3B8C78580743CE9B2F42.png)

![cke_1638.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/054/435/877/0260086000054435877.20240116103409.33571696066247703969455698938399:50001231000000:2800:BD9B53AF894DBB38E01789DC9D47765DC9EB44B9415A5AF6AD0A2422ABAEED07.png)

更多关于HarmonyOS鸿蒙Next NAPI中调用C代码,出现了主线程卡死问题该如何处理?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

这个报错信息是一个线程阻塞错误,可能是因为主线程在执行某个任务时出现了问题,看看是否有可能在执行某个任务时出现了死循环或者阻塞的情况。

更多关于HarmonyOS鸿蒙Next NAPI中调用C代码,出现了主线程卡死问题该如何处理?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next NAPI中调用C代码时,主线程卡死通常是由于C代码执行时间过长或阻塞操作导致的。建议将耗时操作移至子线程中执行,避免阻塞主线程。可以使用uv_queue_worknapi_create_threadsafe_function等方法在子线程中执行C代码,并通过回调函数将结果返回给主线程。此外,确保C代码中没有死锁或无限循环等问题。

回到顶部