我有JFX Task,它从服务器接收HashMap。此操作大约需要5秒钟,然后我返回此Map以获取OnSucceeded EventHandler中的数据,这需要大约一分钟,直到应用程序进入OnSucceeded EventHandler。
任何人都知道为什么在返回值到达Eventhandler之前需要这么长时间?
其他我试图返回null,但它仍然需要这么长时间。但是,如果我在业务线中发表评论,那么任务正常运行。
Task<HashMap<Long, PCSortArticle>> taskO = new Task<HashMap<Long, PCSortArticle>>() {
@Override
protected HashMap<Long, PCSortArticle> call() throws Exception {
log.debug("start task loading article");
log.debug("requesting articles from server");
HashMap<Long, PCSortArticle> articles = business.getArticlesForCatalogLevel(treeKeyHolder.getSelectedTreeKey(true));
log.debug("got articles from server");
return articles;
}
};
taskO.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent event) {
log.debug("start building tableview articles");
}
});
new Thread(taskO).start();
编辑: 我添加了一些日志
2016-03-10 17:05:42,835 DEBUGstart任务加载文章
2016-03-10 17:05:42,836 DEBUG从服务器请求文章
2016-03-10 17:05:44,877 DEBUG从服务器获取文章
2016-03-10 17:06:39,179 DEBUG开始构建tableview文章