Multithreading JavaFX应用程序线程是如何工作的?

Multithreading JavaFX应用程序线程是如何工作的?,multithreading,javafx,thread-sleep,Multithreading,Javafx,Thread Sleep,我对Java FX应用程序线程有问题。下面是一个伪代码: showMenu(); //Contoller which waits for action(pressing button)... showLoadingPic(); Thread.sleep(2000); showMap(); 问题在于,睡眠发生在showMenu()中显示的窗口中,showLoadingPic()根本不显示,而在showMap()中的结束窗口中显示 showLoadingPic中的场景有一个进度条,运行2秒,与Th

我对Java FX应用程序线程有问题。下面是一个伪代码:

showMenu();
//Contoller which waits for action(pressing button)...
showLoadingPic();
Thread.sleep(2000);
showMap();
问题在于,睡眠发生在showMenu()中显示的窗口中,showLoadingPic()根本不显示,而在showMap()中的结束窗口中显示

showLoadingPic中的场景有一个进度条,运行2秒,与Thread.sleep(2000)的时间相同

因此,javafx应用程序线程似乎会阻止showLoadingPic()并在后台运行showLoadingPic()

有人能帮我修一下吗


提前谢谢你

有一个Java FX事件调度线程,它处理所有与GUI相关的任务。您必须更新此线程中的所有UI组件。 长时间运行的任务,如
Thread.sleep
不应在此线程中执行,因为windows将挂起,GUI将被冻结

通过调用,在应用程序主线程中执行所有代码,并在JavaFX线程中仅执行GUI任务

关于这一主题的参考资料:

  • ,来自甲骨文