在哪个线程上执行JavaFX更改侦听器?

时间:2016-07-13 07:53:42

标签: java multithreading javafx javafx-2 javafx-webengine

下面的文档更改侦听器中添加的代码是否总是在JavaFX应用程序线程中执行?

this+1

或者我是否需要添加 Platform.runLater()

当我在那里遇到断点后查看线程堆栈时,看起来代码在JavaFX Application Thread本身中执行,但是想确认在文档中找不到任何关于此的注释。提及此文档的任何链接都非常有用。

2 个答案:

答案 0 :(得分:4)

一般来说,更改侦听器在进行更改的同一线程上运行。当然,可能有PropertyObservableValue的实现在另一个线程上调用侦听器,但据我所知,没有具有此行为的默认实现。

所以简单的答案是 - 更改侦听器将在原始更改执行的任何线程上运行 话虽这么说,如果属性与JavaFX节点相关,那么应该在JavaFX线程上调用原始更改,以防止" Not on FX应用程序线程"异常。

答案 1 :(得分:1)

是的,代码在JFX-Thread上运行。

JavaFx Architecture Documentation查看“Glass Windowing Toolkit - > Threads”部分

相关问题