Java 更新ObservableList时线程挂起

Java 更新ObservableList时线程挂起,java,javafx,Java,Javafx,我正在开发一个javafx应用程序,它有一个由ObservableList支持的ListView @FXML private ListView<String> taggedQueriesResultsList; private ObservableList<String> searchResultsList = FXCollections.observableArrayList(); @FXML private ListView taggedQueriesResults

我正在开发一个javafx应用程序,它有一个由ObservableList支持的ListView

@FXML
private ListView<String> taggedQueriesResultsList;
private ObservableList<String> searchResultsList = FXCollections.observableArrayList();
@FXML
private ListView taggedQueriesResultsList;
私有ObservableList searchResultsList=FXCollections.observableArrayList();
ObservableList由计划任务使用执行器更新数据,例如
列表。添加(“某物”)
。newSingleThreadScheduledExecutor()。但是,计划的任务在第一次之后不会运行。用户界面在第一次运行后更新。我注意到,如果我注释掉行
list.add(“某物”)
任务将按计划定期运行


我认为这是一些同步问题,但不确定。请帮助我了解发生了什么以及如何解决问题。

确保始终从应用程序线程更新GUI。看


有关线程安全的可观察集合,请参见此处:

创建同步可观察列表的示例:

newSeries = new XYChart.Series<>();
ObservableList<XYChart.Data<Number, Number>> listaSerie;
listaSerie = FXCollections.synchronizedObservableList(FXCollections.observableList(new ArrayList<XYChart.Data<Number, Number>>()));
newSeries.setData(listaSerie);
newSeries=new XYChart.Series();
可观察列表;
listaSerie=FXCollections.synchronizedObservableList(FXCollections.observableList(newArrayList());
setData(listaSerie);

c#是执行速度快、线程安全的可观察集合的第二个链接。这个问题是关于java的。