我需要在一段时间内将测试数据提供给Swing interval。数据集解析起来很长,所以我使用SwingWorker在后台解析它。当涉及到向图形用户界面提供数据(比方说,每秒一个项目)时,我可以从SwingWorker启动一个Timer,但这似乎有点过分了。有什么理由不在SwingWorker内部休眠吗?
干杯
发布于 2011-06-07 20:35:56
因为SwingWorker不是在EDT上运行的,所以在里面睡觉是完全可以的。
SwingWorker适用于需要在后台线程中运行长时间运行的任务,并在完成或处理时为UI提供更新的情况。
在我看来,在SwingWorker的基础上再添加一个Timer就太夸张了。相反,只要有可能,就发布解析的测试数据,即使是在不规律的时间间隔。
发布于 2011-06-07 20:42:33
当您使SwingWorker休眠时,它将不会加载数据。如果这是需要的,那么这种方法是可以的。
如果你想继续加载数据,只需控制输入到图形用户界面的速度,那么似乎更好的设计是在图形用户界面中启动一个计时器,该计时器将以一定的时间间隔检查并从工作程序中提取新数据,而不是让工作程序调用invokeLater回调图形用户界面。
https://stackoverflow.com/questions/6265169
复制相似问题