为什么 Platform.runLater 不检查它当前是否在 JavaFX 线程上?
使用 JavaFX 8 时,我们需要通过 运行与 GUI 的交互,否则如果从另一个线程运行,它们将引发异常。Platform.runLater
但是,从不检查它当前是否在 JavaFX 线程上。Platform.runLater
我写了以下方法:
public static void runSafe(final Runnable runnable) {
Objects.requireNonNull(runnable, "runnable");
if (Platform.isFxApplicationThread()) {
runnable.run();
}
else {
Platform.runLater(runnable);
}
}
这可确保它永远不能在非 fx 应用程序线程上运行。
有什么理由默认实现不做这种短路吗?