【发布时间】:2023-03-06 00:56:02
【问题描述】:
我正在从我的 JAVA 应用程序中调用一个长时间运行的 JNI 方法。 JNI 方法做了几件事,我想在每一步之后得到一个状态消息。
我有这个 JNI-sn-p:
JNIEXPORT void JNICALL Java_my_package_Engine_start(JNIEnv * env, jclass class, jstring address, jstring file) {
longRunningMethod1();
// notify java that method 1 is finished
longRunningMethod2();
// notify java that method 2 is finished
longRunningMethod3();
}
我是这样调用方法的:
Engine.start(param1, param2);
这个方法会阻塞,直到 JNI 中的所有内容都完成 - 没关系,但现在我想获取并处理状态信息。
也许像 puts() 这样的东西会有所帮助?
【问题讨论】:
-
您不能将您的 JNI 方法拆分为多个较小的方法并处理应用程序中调用之间更新的进度吗?
-
这可以以任何方式工作,但这将是一个重大变化。 JNI 方法在多个线程中建立与其他系统的连接,如果这些连接成功与否,我想获取信息。
-
进行重大更改并正确解决您的问题,而不是在那时破解您的方式。从长远来看,您将节省时间。
-
如果最后没有更好的解决方案,我会尝试。
标签: java c java-native-interface