我正在使用 aTask
进行一些计算,该计算的输出存储为字符串。计算完成后,输出应显示在 a 中TextArea
。使用任务onSucceeded
设置TextArea
文本是否安全?如果不是,最好/推荐的方法是等到任务完成然后将输出写入TextArea
?
感谢您的任何提示:-)
我正在使用 aTask
进行一些计算,该计算的输出存储为字符串。计算完成后,输出应显示在 a 中TextArea
。使用任务onSucceeded
设置TextArea
文本是否安全?如果不是,最好/推荐的方法是等到任务完成然后将输出写入TextArea
?
感谢您的任何提示:-)
Task
是的,请参阅javadoc的引用 :
因为任务是为 JavaFX GUI 应用程序设计的,所以它确保对其公共属性的每次更改以及状态、错误和事件处理程序的更改通知都发生在 JavaFX 应用程序主线程上。
您可以使用以下代码自己验证此类情况:
task.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent t) {
System.out.println(Thread.currentThread().getName());
}
});
输出应该是:
JavaFX 应用程序线程