gpt4 book ai didi

android - 超时后CPP调用函数

转载 作者:行者123 更新时间:2023-11-30 17:58:46 24 4
gpt4 key购买 nike

我正在使用CPP,我想实现超时机制。
例如,函数名为“foo()”,它只会触发一个函数在超时后执行,然后返回。

为什么我需要这个?

我有一个 Android 应用程序,它使用一个 CPP 库(使用 JNI 接口(interface)),该库中有一些函数需要时间来处理。我无法在单独的线程中调用这些函数(无论是来自java还是CPP作为lib限制),因此我在android应用程序中得到ANR。

所以我会做什么,我将使用 JNI 调用 CPP 层中的一个函数,该函数将启动一个计时器并返回,以便 android 中的 UI 线程不会给出 ANR,并且当该计时器超时时,它将调用该时间函数,当处理完成时,它会通知java层。

我应该如何实现这个?

最佳答案

在您的 native C++ 代码中,您还可以使用 POSIX 计时器和任何其他 POSIX 函数:

http://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html

为了促进许多标准任务(计时器、线程、套接字等),您可能需要考虑使用 boost图书馆。但这需要一点研究。 boost 没有官方的 Android 端口。但是有如何构建 boost 的说明,例如这本书 http://www.wowebook.be/book/android-ndk-beginners-guide/#

关于android - 超时后CPP调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com