JNI Глобальные обьекты
От: loknalori Россия  
Дата: 23.05.07 12:28
Оценка:
Мне необходимо делать Callback из С++ DLL в JAVA. Проблема в том, что хочется сделать многопотчный вызов. Т.е. создать глобальные обьекты jobject obj и JNIEnv *env, и уже для них делать вызовы методов из разных потоков, а именно
env->CallVoidMethod(obj, targetMethodId, и т.д.)


Пробелема в том, что сделав env->NewGlobalRef(...) я потом не могу найти ни ID метода, если я сохраняю ID метода загодя, то у меня все ломается на этапе вызова.

Следующий вариант, Java создает поток, запускает функцию, функция крутится в вечном вайле и вызывает методы в этом контексте. Все хоррошо, но если попытаться создать поток и передать туда соответствующие обьекты и хендлы, (прошу заметить, основная функция — поток жива и не вредима, значит и обьекты валидны) то происходит та же фигня что и в первом случае...

Как быть?

P.S. могу перефразировать задачу. Необходимо сделать вызвать метод в JAVA из С++ ф-ии, которая на входе не имеет енвиромента и обьекта (не JNI спецификации)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.