0

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

为什么我需要这个?

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

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

我应该如何实现这个?

4

1 回答 1

0

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

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

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

于 2012-08-17T11:17:56.407 回答