синхронизация потока javafx, пока истина - PullRequest
0 голосов
/ 23 мая 2018

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

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



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

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

1 Ответ

0 голосов
/ 23 мая 2018

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

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

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

...