我有一个单独的线程需要请求一些可能在此期间在JavaFX线程内发生变化的数据 . 我想在这个单独的线程中执行一个阻塞调用,以确保请求被引入JavaFX线程 .
Swing-GUI测试框架AssertJ为此提供了一个易于使用的API:
List list = GuiActionRunner.execute(new GuiQuery<...>...);
调用阻塞当前线程,在事件调度线程中执行传递的代码并返回所需的数据 .
如何在JavaFX应用程序的 生产环境 代码中实现?这个要求的推荐方法是什么?
2 回答
好吧我想我现在明白了 . 你需要自己实现这样的东西:
这是一个替代解决方案,使用FutureTask . 这避免了显式锁存和管理
AtomicReference
中的同步数据 . 这里的代码可能很简单,它会使Platform
中的这个功能冗余 .如果你想pause a background thread to await user input,这项技术非常有用 .