繁体   English   中英

JavaFX Node.snapshot()从工作线程调用时冻结线程,想法?

[英]JavaFX Node.snapshot() freezes thread when called from worker thread, ideas?

我需要将javafx.scene.canvas.Canvas写入javafx.scene.image.WritableImage 我知道javafx.scene.Node中的snapshot()方法将执行此操作,当我位于JavaFX Application线程上时,它的效果很好。

但是我需要从使用javafx.concurrent包的工作线程执行此写操作。 因此,我有一个javafx.concurrent.Task<V> ,尝试从其call()方法内call() snapshot() call()方法。 尝试执行此操作时,线程在调用snapshot()时冻结。

所以我的问题是我可以从使用javafx.concurrent包的工作线程中调用snapshot()吗?

尝试Platfrom#runLater()针对此类任务介绍的Platfrom#runLater()http : Platfrom#runLater()

Platform.runLater(new Runnable() {
    public void run() {
        myNode.snapshot(...)
    }
}

您可以从任何线程运行此代码,但是会根据需要在FX App Thread上调用snapshot()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM