Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪个线程上执行JavaFX更改侦听器?_Java_Multithreading_Javafx_Javafx 2_Javafx Webengine - Fatal编程技术网

在哪个线程上执行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

以下文档中添加的代码是否总是在JavaFX应用程序线程中执行

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应用程序线程”异常