Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java Swing worker作为单例在后台备份应用程序数据_Java_Swing_Swingworker - Fatal编程技术网

使用Java Swing worker作为单例在后台备份应用程序数据

使用Java Swing worker作为单例在后台备份应用程序数据,java,swing,swingworker,Java,Swing,Swingworker,我计划将Java SwingWorker作为一个单例,与Swing计时器或Java.util.timer结合使用,在后台周期性地备份应用程序数据 这样的策略合理吗?将Singleton应用于SwingWorker是个好主意吗?我不知道SwingWorker与备份任务有什么关系。我也不明白单例模式与此有什么关系。这是计时器的任务。不过,您可能必须小心,不要在多个线程中启动它,但如果不将其包装为单个线程,这应该是可行的。我看不出SwingWorker与备份任务有什么关系。我也不明白单例模式与此有什么

我计划将Java SwingWorker作为一个单例,与Swing计时器或Java.util.timer结合使用,在后台周期性地备份应用程序数据
这样的策略合理吗?将Singleton应用于SwingWorker是个好主意吗?

我不知道SwingWorker与备份任务有什么关系。我也不明白单例模式与此有什么关系。这是计时器的任务。不过,您可能必须小心,不要在多个线程中启动它,但如果不将其包装为单个线程,这应该是可行的。

我看不出SwingWorker与备份任务有什么关系。我也不明白单例模式与此有什么关系。这是计时器的任务。但是,您可能必须小心不要在多个线程中启动它,但这在不将其包装为单个线程的情况下是可行的。

我认为您可以轻松使用SwingWorker来保存模型的状态。如果您想在后台执行此任务,最好是创建状态的当前副本并保存副本,这样您就不必担心在另一个线程中保存模型时同步模型的状态


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

我认为您可以轻松使用SwingWorker保存模型的状态。如果您想在后台执行此任务,最好是创建状态的当前副本并保存副本,这样您就不必担心在另一个线程中保存模型时同步模型的状态


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

我使用SwingWorker,因为它处理读取gui状态,我还计划执行恢复,这肯定会操作gui状态,我应该使用SwingWorker进行恢复吗?我使用SwingWorker是因为它处理读取gui状态,我还计划进行恢复,这肯定会操纵gui状态,那么我应该使用SwingWorker进行恢复吗?确保定期备份应用程序数据的想法是正确的,通过这种方式,您可以将应用程序逻辑从GUI分离到后台任务,以避免在最困难和最长的任务期间冻结GUI,因为您的想法是使用java.util.Timer有其他选项。请确保定期备份应用程序数据的想法是正确的,通过这种方式,您可以将应用程序逻辑从GUI分离到后台任务,以避免在最困难和最长的任务期间冻结GUI,因为您的想法是使用java.util.Timer还有其他选项