由于我模块化代码的方式,我有几个后台(非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);