JavaFX周期性后台任务我尝试周期性地在JavaFX应用程序后台线程中运行,这会修改一些GUI属性。我想我知道怎么用Task和Service来自javafx.concurrent如果不使用Thread#sleep()方法。如果我能用一些Executor从…Executors制作方法(Executors.newSingleThreadScheduledExecutor())我试着跑Runnable每5秒,就会重新开始javafx.concurrent.Service但它马上就挂起来了service.restart甚至service.getState()叫做。所以最后我用Executors.newSingleThreadScheduledExecutor(),它会引发我的Runnable每隔5秒Runnable运行另一个Runnable使用:Platform.runLater(new Runnable() {
//here i can modify GUI properties}它看起来很恶心:(有没有更好的方法Task或Service上课?
3 回答

呼唤远方
TA贡献1856条经验 获得超11个赞
Label.textProperty()
.
Label label = ...;EventStreams.ticks(Duration.ofSeconds(5)) // emits periodic ticks .supplyCompletionStage(() -> getStatusAsync()) // starts a background task on each tick .await() // emits task results, when ready .subscribe(label::setText); // performs label.setText() for each resultCompletionStage<String> getStatusAsync() { return CompletableFuture.supplyAsync(() -> getStatusFromNetwork());}String getStatusFromNetwork() { // ...}
添加回答
举报
0/150
提交
取消