2013-06-22 4 views
1

Я пишу программу, которая должна получать информацию с сервера. Для этого я использую асинхронные потоки. Но когда пользователь нажимает на другой элемент, запускается новый поток. Если первый из них еще не завершился, например, из-за сетевой проблемы, второй поток заканчивается и устанавливает информацию пользовательского интерфейса. Затем первый заканчивается и перезаписывает его снова. Итак, как я могу остановить первый поток, когда пользователь нажимает на другой элемент?JavaFX stop threads

я получил, что:

Thread asyncThread = new Thread(task); 
asyncThread.start(); 

Но от того, что я могу видеть в объекте Thread, нет никакого способа, чтобы остановить поток (только осуждается .stop()), но я не хочу использовать устаревшие вещи для новых программ.

ответ

0

В JavaFX рекомендуется использовать Сервис, служба предоставляет такие методы, как stop(), cancel(), restart() ... Посмотрите мой ответ на этот вопрос JavaFX GUI stuck, чтобы показать, как использовать Service.

+0

Хорошо, спасибо, я посмотрю на это. – Lorenz