我从我的JAVA应用程序中调用长时间运行的JNI方法。 JNI-方法做了几件事情,我希望在每一步之后都得到状态消息。从JNI返回状态信息到JAVA
我有这个JNI - 摘录:
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方法分成多个小的方法,并处理你的应用程序中的调用之间更新的进度? – 2013-02-18 08:58:42
这可以以任何方式工作,但这将是一个重大变化。 JNI方法在多个线程中建立与其他系统的连接,并且如果这些连接成功与否,我希望获得信息。 – 2013-02-18 09:00:54
做了重大更改并正确地解决了您的问题,而不是随便乱动。长远来看,您将节省时间。 – 2013-02-18 09:02:43