我需要在一段时间内将测试数据提供给 Swing 间隔。数据集解析很长,所以我SwingWorker
在后台使用a来解析它。在将数据提供给 GUI 时(例如,每秒一个项目),我可以从 开始Timer
,SwingWorker
但这似乎有点过头了。有什么理由不从内部睡觉SwingWorker
?
干杯
我需要在一段时间内将测试数据提供给 Swing 间隔。数据集解析很长,所以我SwingWorker
在后台使用a来解析它。在将数据提供给 GUI 时(例如,每秒一个项目),我可以从 开始Timer
,SwingWorker
但这似乎有点过头了。有什么理由不从内部睡觉SwingWorker
?
干杯
Since SwingWorker
doesn't run on the EDT, sleeping within is perfectly fine.
SwingWorker is designed for situations where you need to have a long running task run in a background thread and provide updates to the UI either when done, or while processing.
In my opinion, a Timer
in addition to a SwingWorker
would be overkill. Instead, just publish the parsed test data whenever possible, even at irregular intervals.
当您让 SwingWorker 休眠时,它不会加载数据。如果需要,那么这种方法很好。
如果您想继续加载数据并只是调整向 GUI 提供数据的速度,那么似乎更好的设计是在 GUI 中启动一个计时器,它会每隔一段时间从工作人员而不是工作人员那里检查和提取新数据必须invokeLater
调用回 GUI。