在JavaFX 2中处理异步任务的最佳实践?

时间:2013-12-06 09:40:52

标签: javafx javafx-2

开始开发JavaFX App我遇到了一些关于处理concurreny的问题。我知道来自JavaFX的并发工具(ServiceTaskTimeline),但我不知道在真正的JavaFX应用程序中使用它们的最佳方法。

我正在使用FXML,我想开始一个非同步的,反复出现的任务。这是在我的Service应用程序或Main类中创建Controller的最佳方法吗?由于Service将更新UI,我仍然需要对控制器的引用。

有没有人有一些最佳实践如何处理?

2 个答案:

答案 0 :(得分:0)

最佳做法可能是将controller视为访问FXML文件中声明的组件的方式,除此之外,即只是UI定义的一部分而没有任何域逻辑。没有充分的理由说明为什么你不能在同一个类中编写服务,但 也可能没有充分的理由。

答案 1 :(得分:0)

正如Knut所说,你可以在你的控制器中实现你的周期性任务。

仍然有改进的余地,您可以定义一个ServiceFactory,这可能很有用,因为您可能希望在您创建的每个服务上添加代码以记录此Thread上的内容/或在该上添加默认的错误处理程序例如服务。

如果您使用像Spring这样的IOC框架,它将使您能够轻松定义ThreadPool,以使用指定的参数为您的服务生成线程。