按给定顺序在 JAVAFX 中运行顺序后台任务的推荐方法

问题描述

由于我模块化代码的方式,我有几个后台(非 JAVAFX)任务,我希望按照指定的顺序从我的 JAVAFX 控制器依次执行。我希望在上一个任务完成后尽快开始下一个任务。我搜索了示例,但我认为它们并不能保证踏板会按指定的顺序执行。我也知道我通常不应该尝试让 FX 线程等待或循环来检查任务的进度,以免 GUI 冻结。作为初学者,我不知道如何实现我的目标。假设我有这些任务:task1、task2、task3。关于如何运行 task1、task2 和 task3 的一般建议?

解决方法

创建一个单线程执行器来执行任务:

ExecutorService exec = Exectors.newSingleThreadExecutor();

您可能希望将此范围作为创建任务的类中的实例变量。

然后就这样做:

Task<Something> task1 = ... ;
Task<Something> task2 = ... ;
Task<Something> task3 = ... ;

exec.submit(task1);
exec.submit(task2);
exec.submit(task3);