我有一个使用javax.swing.Timer运行的任务。每隔几分钟执行一次。该任务需要一两秒钟,并且冻结了我的GUI。
我该怎么做才能解决此问题?
最佳答案
计时器任务是在事件调度线程上执行的,因此在您的任务运行时,不会发生其他任何摆动事件,并且您的GUI将冻结。对于如此长的任务,您应该创建一个单独的线程,或者使用SwingWorker。
有关更多详细信息,请参见this问题。
我有一个使用javax.swing.Timer运行的任务。每隔几分钟执行一次。该任务需要一两秒钟,并且冻结了我的GUI。
我该怎么做才能解决此问题?
最佳答案
计时器任务是在事件调度线程上执行的,因此在您的任务运行时,不会发生其他任何摆动事件,并且您的GUI将冻结。对于如此长的任务,您应该创建一个单独的线程,或者使用SwingWorker。
有关更多详细信息,请参见this问题。