1

我打算使用 Java SwingWorker 作为单例在后台定期备份应用程序数据(可能与 Swing 计时器或 java.util.Timer 结合使用)
这样的策略听起来吗?将 Singleton 应用于 SwingWorker 是个好主意吗?

4

2 回答 2

2

我认为您可以轻松地使用SwingWorker来保存模型的状态。如果您想在后台执行此任务,最好是制作您的状态的当前副本并保存副本,因此您无需担心在将模型保存在另一个线程中时同步模型的状态。

在进行恢复时,您可能希望确保用户不会在从以前的版本恢复模型期间所做的所有事情都发生并在以后丢失。在成功恢复时,您可能会将当前状态设置为它。因此在这种情况下,阻止任何用户输入甚至是合适的,因此您可以轻松地在当前线程上执行此操作。首先向您的用户显示一些适当的信息/对话框,表明状态正在恢复。

于 2011-05-28T15:14:23.377 回答
2

我看不出SwingWorker与备份任务有什么关系。我也看不出单例模式有什么关系。这是一个Timer. 但是,您可能必须小心不要在多个线程中启动它,但这应该是可行的,而无需将其包装为单例。

于 2011-05-28T13:56:25.017 回答