【问题标题】:How to separate AnimationTimer from the JavaFX application thread?如何将 AnimationTimer 从 JavaFX 应用程序线程中分离出来?
【发布时间】:2016-05-11 04:16:49
【问题描述】:
我正在使用Canvas - 并且从多个简单线程在画布的GraphicsContext 上绘图并不那么顺利...
唯一正常的方法是使用AnimationTimers - 但它们不能作为单独的线程工作。当我在动画计时器内调用wait() 时,它会停止整个应用程序。
有没有办法将AnimationTimers 与应用程序的主线程分开?所以它将作为独立线程运行并等待而不停止整个应用程序?
【问题讨论】:
标签:
java
multithreading
javafx
【解决方案1】:
有没有办法将 AnimationTimers 与应用程序的主线程分开?所以它将作为独立线程运行并等待而不停止整个应用程序?
不,您不能在它自己的线程上运行动画计时器。动画计时器提供回调处理程序,在 JavaFX 应用程序线程上的 JavaFX 系统的每个 pulse 上调用。
当我在动画计时器中调用 wait() 时,它会停止整个应用程序。
别这样……
从多个简单线程在画布的 GraphicsContext 上绘图并不顺利...
您不应该从多个线程调用图形上下文。图形上下文不是多线程构造,它的 API 被构建为仅在画布附加到实时场景后从 JavaFX 应用程序线程调用。