在哪个线程上执行JavaFX更改侦听器?
以下文档中添加的代码是否总是在JavaFX应用程序线程中执行在哪个线程上执行JavaFX更改侦听器?,java,multithreading,javafx,javafx-2,javafx-webengine,Java,Multithreading,Javafx,Javafx 2,Javafx Webengine,以下文档中添加的代码是否总是在JavaFX应用程序线程中执行 webEngineObject.documentProperty().addListener(new ChangeListener<Document>(){ @Override public void changed( ObservableValue<? extends Docum
webEngineObject.documentProperty().addListener(new ChangeListener<Document>(){
@Override
public void changed(
ObservableValue<? extends Document> arg0,
Document arg1, Document arg2) {
//some code here
}
});
webEngineObject.documentProperty().addListener(新的ChangeListener()){
@凌驾
更改公众假期(
ObservalEvalue是的,代码在JFX线程上运行
查看“玻璃窗工具箱->线程”部分一般来说,更改侦听器运行在进行更改的同一线程上。当然,可能有属性
或observeValue
的实现在另一个线程上调用侦听器,但据我所知,没有这种行为的默认实现
因此,简单的答案是-更改侦听器将在执行原始更改的任何线程上运行。
也就是说,如果属性与JavaFX节点相关,那么应该在JavaFX线程上调用原始更改,以防止出现“notonfx应用程序线程”异常