【发布时间】:2020-09-22 05:08:33
【问题描述】:
我正在制作一个从 API 获取实时价格信息的程序。然后我想在实时更新的 JavaFX 图表上显示价格信息。当我尝试将信息传递给 JavaFX 线程时,它并不总是正确传递,JavaFX 线程也无法获取价格信息。
API 调用在单独的线程上完成,当它获得信息后,它会调用 updateScene 方法。这是我遇到问题的地方,API 线程包含我尝试设置的变量以供 JavaFX 线程使用的所有信息,但它没有任何信息。
private CandleStickFeed candleStickFeed;
public void updateScene(CandleStickFeed candleStickFeed){
this.candleStickFeed = candleStickFeed;
System.out.println("Feed Size This Thread = " + candleStickFeed.getSize());
Platform.runLater(new Runnable(){
@Override
public void run(){
System.out.println("Feed Size JavaFX Thread = " + candleStickFeed.getSize());
updateChart();
}
});
}
程序有时会输出
此线程的饲料大小 = 5
提要大小 JavaFX 线程 = 5
这是我所期望的。但它有时也会输出
此线程的饲料大小 = 5
提要大小 JavaFX 线程 = 0
任何帮助将不胜感激。我是使用多个线程的新手,所以不确定我在做什么。我一直在寻找不同的答案,但找不到任何答案。谢谢
【问题讨论】:
标签: java multithreading javafx