【发布时间】:2018-10-22 20:36:44
【问题描述】:
在 JavaFx 上,可重用任务通常在 javafx.concurrent.Service<> 上实现。
问题是:如何管理多次触发Service的多次UI交互?
方法 1 - restart():
我可以使用 service.restart(),但它会取消正在运行的任务并启动一个新任务。这不是想要的结果,因为我不想取消第一个。
方法 2 - start():
为了能够多次使用 start(),我必须这样做:
if(!isRunning()) {
reset();
start();
}
但如果isRunning() 为真,则忽略第二次运行。
我想阻止第二次运行,直到第一次运行结束,所以不会丢失 UI 交互。所以我希望阻止或排队任务。
这将如何实现?
【问题讨论】: