Синхронизация потока javafx, пока истина

Я новичок в JavaFX и есть некоторые проблемы с потоками. Мое приложение должно сделать что-то вроде этого (жесткий псевдокод):

start(){
  startLoop(); //new thread
  displayThingsSavedToSharedVariable();
}



loop(){
  while (true){
    doThings();
    saveThingsToSharedVariable();
  }
}

Я хочу отобразить вывод из loop() в JavaFX GUI обновлен, по одному на строку в терминале, но я не знаю, как синхронизировать поток с loop() с JavaFX нить. Общая переменная - это всего лишь - не работающий - пример того, чего я хочу достичь, главный вопрос - как динамически печатать текст в JavaFX GUI из бесконечного цикла в другом потоке.

1 ответ

Решение

Правильный способ обновить графический интерфейс javafx - использовать Platform.runLater.

String mytext = deriveText();
Platform.runLater(()->{
    label.setText(mytext);
});

Вы также можете рассмотреть возможность использования интерфейса Observable.

Другие вопросы по тегам