Здравствуйте, пишу приложение на java. В качестве GUI использую JavaFX (скажу сразу, что при использование swt данной проблемы нет).
Итак, есть некоторая функция, длительность выполнения которой не менее 30 сек на моем ноутбуке. В ней происходит довольно сложная обработка данных.
При её вызове буквально через 1-2 секунды появляется окошко, что "Платформа Java(TM) Platform SE binary не работает" с текстом "Возникшая проблема привела к прекращению работы программы...".
Как решить данную проблему я не знаю.
Может быть подскажет кто, как вызывать методы, которые выполняются довольно долго и при этом приложение на JavaFX не вырубало вот так..?
Вызываю метод при выборе элемента всплывающего меню:
itemGoIT.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
context.hide(); //убираем меню
System.out.println("старт " + new Date(System.currentTimeMillis()));
JniTest SS = new JniTest();
try {
//вызываем метод
SS.showString();
}
catch (UnsatisfiedLinkError e) {
System.out.println("метод не найден (" + e + ")");
}
System.out.println("завершено " + new Date(System.currentTimeMillis()));
}
});
Скорее всего вы подвешиваете поток обрабатывающий события ui.
Чтобы этого не происходило, нужно вынести все тяжелые операции в отдельный поток, т.е. ваш код должен выглядеть следующим образом:
new Thread(() -> {
System.out.println("старт " + new Date(System.currentTimeMillis()));
JniTest SS = new JniTest();
try {
//вызываем метод
SS.showString();
} catch (UnsatisfiedLinkError e) {
System.out.println("метод не найден (" + e + ")");
}
System.out.println("завершено " + new Date(System.currentTimeMillis()));
}).start();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый вечерЧто-то не работает функция mail(), хотя на хостинге есть возможность отправлять почту (тестил более примитивным)