Concurrency 工人完成后的处理
在RESTAPI上调用方法会生成Concurrency 工人完成后的处理,concurrency,javafx,Concurrency,Javafx,在RESTAPI上调用方法会生成javafx.concurrent.Worker对象 final Worker<ObservableList<ProductBrand>> retrieve = listDataProvider.retrieve(); final Worker retrieve=listDataProvider.retrieve(); 我希望在Worker完成工作后进行一些操作。如何才能做到这一点?使用Worker的state属性注册侦听器,并处理状态
javafx.concurrent.Worker
对象
final Worker<ObservableList<ProductBrand>> retrieve = listDataProvider.retrieve();
final Worker retrieve=listDataProvider.retrieve();
我希望在
Worker
完成工作后进行一些操作。如何才能做到这一点?使用Worker
的state
属性注册侦听器,并处理状态转换:
retrieve.stateProperty().addListener((obs, oldState, newState) -> {
if (newState == Worker.State.SUCCEEDED) {
ObservableList<ProductBrand> result = retrieve.getValue();
// etc...
} else if (newState == Worker.State.FAILED) {
Throwable exception = retrieve.getException();
/// etc...
}
// handle other states (READY, SCHEDULED, RUNNING, CANCELLED) if needed
});
retrieve.stateProperty().addListener((obs、oldState、newState)->{
if(newState==Worker.State.successed){
ObservableList result=retrieve.getValue();
//等等。。。
}else if(newState==Worker.State.FAILED){
Throwable exception=retrieve.getException();
///等等。。。
}
//如果需要,处理其他状态(就绪、计划、运行、取消)
});
请注意,此回调将在FX应用程序线程上执行,因此您可以在此处安全地修改场景图元素的状态