0
我正在尋找一個想法如何同步兩個javafx.concurrent.Service。 每個服務正在調用REST端點來加載數據。我喜歡同步這兩個服務。 只有在讀取這兩項服務時,我才喜歡更新我的屏幕元素。 這兩個服務都使用EventHandler回調。 JavaFx中是否存在一個標準模式?JavaFx同步兩個服務
感謝您的支持。
問候, 曼努埃爾
我正在尋找一個想法如何同步兩個javafx.concurrent.Service。 每個服務正在調用REST端點來加載數據。我喜歡同步這兩個服務。 只有在讀取這兩項服務時,我才喜歡更新我的屏幕元素。 這兩個服務都使用EventHandler回調。 JavaFx中是否存在一個標準模式?JavaFx同步兩個服務
感謝您的支持。
問候, 曼努埃爾
一個簡單的解決辦法是聽服務Worker.State
:
firstService.stateProperty().isEqualTo(State.SUCCEEDED)
.and(secondService.stateProperty().isEqualTo(State.SUCCEEDED))
.addListener((ov, b, b1) -> {
if(b1){
// udpateUI
}
});
如果你的Java 8是一個選項,你可以在它的CompletableFuture
有一看,使用例如
CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> service1);
CompletableFuture<Void> future2 = CompletableFuture.runAsync(() -> service2);
CompletableFuture<Void> finished = CompletableFuture.allOf(future1, future2);
finished.thenRun(() -> {
Platform.runLater(() -> {
// updateUI
});
});