JavaFX的AnimationTimer在启动时是否运行在一个单独的线程上?
我在调试器中运行了一个JavaFX应用程序,有和没有AnimationTimer,在这两种情况下都有6个线程在运行。另外,JavaDocs没有提到它实现Runnable。
这意味着它不是在自己的线程中运行的,但从本质上讲,我认为它需要在自己的线程中运行,以确保它在足够正常的时间内运行。
如果它不是在自己的线程中运行,那么它只是运行在创建它的线程中吗?这是否意味着,如果我在AnimationTimer的Application's start()中创建UI元素,那么在计时器中修改UI元素是安全的。
发布于 2015-10-11 19:24:41
JavaFX的AnimationTimer在启动时是否运行在一个单独的线程上?
不,它没有。它运行在JavaFX应用程序线程上。在每个帧中调用动画The的handle()方法,而AnimationTimer是活动的。通常,JavaFX试图保持60 fps的帧速率。
这是否意味着如果我在Application的start()中创建AnimationTimer,那么可以在计时器中修改UI元素吗?
是的,是这样的。因为它运行在JavaFX应用程序线程上,所以修改场景图元素是非常好的。只需确保您没有在handle()中做大量的计算。
https://stackoverflow.com/questions/33068953
复制相似问题