在JavaFX平台线程的每个循环中运行一个任务?

在JavaFX平台线程的每个循环中运行一个任务?,javafx,synchronization,Javafx,Synchronization,我有一个JavaFXUI,它显示一个相对较大的数据集。当数据集更改时,更改将排队,然后需要将更改“推送”到UI。通常,队列中的更改超过了我在一个平台上推送到UI的能力。runLater()——尝试推送到所有更改都会导致JavaFX窗口结巴或冻结 由于更改在一个队列中,所以我很容易将它们分成一系列批。我希望每次javafxui线程循环时都运行一个批处理 如何连接到FX线程,使其每次循环调用一次我的方法?此外,我可以负责地使用每个循环多少毫秒来更新数据集 使用一个。这真的是解决方案吗?在JavaFX

我有一个JavaFXUI,它显示一个相对较大的数据集。当数据集更改时,更改将排队,然后需要将更改“推送”到UI。通常,队列中的更改超过了我在一个
平台上推送到UI的能力。runLater()
——尝试推送到所有更改都会导致JavaFX窗口结巴或冻结

由于更改在一个队列中,所以我很容易将它们分成一系列批。我希望每次javafxui线程循环时都运行一个批处理


如何连接到FX线程,使其每次循环调用一次我的方法?此外,我可以负责地使用每个循环多少毫秒来更新数据集

使用一个。这真的是解决方案吗?在JavaFX中,使用动画API在JavaFX应用程序线程上长期/周期性地执行短期任务是一种常见且公认的做法(请参阅)。动画API实际上是在FX线程上“循环”的唯一方法,
AnimationTimer
基本上是该API的最低级别。
handle
方法每帧调用一次(或者用你的话说是“每循环一次”)。如果你发布了一个,可能会更容易提供帮助,但通常长时间运行的进程会在一个或一个中完成。使用这些类可以获得一个结果对象,它可以是一个列表。@RonSiven OP的问题似乎与加载数据无关(这意味着在后台线程上发生),而是有太多的数据,当将其推送到UI时,UI会结巴/冻结。诚然,这可能是UI设计的一个问题,a会说明这一点,但使用
任务
服务
也无济于事。使用。这真的是解决方案吗?在JavaFX中,使用动画API在JavaFX应用程序线程上长期/周期性地执行短期任务是一种常见且公认的做法(请参阅)。动画API实际上是在FX线程上“循环”的唯一方法,
AnimationTimer
基本上是该API的最低级别。
handle
方法每帧调用一次(或者用你的话说是“每循环一次”)。如果你发布了一个,可能会更容易提供帮助,但通常长时间运行的进程会在一个或一个中完成。使用这些类可以获得一个结果对象,它可以是一个列表。@RonSiven OP的问题似乎与加载数据无关(这意味着在后台线程上发生),而是有太多的数据,当将其推送到UI时,UI会结巴/冻结。诚然,这可能是UI设计的一个问题,a会说明这一点,但使用
任务
服务
也无济于事。