我正在制作一个从 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();
}
});
}
Run Code Online (Sandbox Code Playgroud)
程序有时会输出
进给尺寸 此线程 = 5
馈送大小 JavaFX 线程 = 5
这是我所期望的。但它有时也会输出
进给尺寸 此线程 = 5
馈送大小 JavaFX 线程 = 0
任何帮助将不胜感激。我刚开始使用多线程,所以不确定我在做什么。我一直在寻找不同的答案,但找不到任何答案。谢谢