Java 睡在荡秋千里?

Java 睡在荡秋千里?,java,swing,sleep,swingworker,Java,Swing,Sleep,Swingworker,我需要在一段时间内将测试数据提供给Swing interval。数据集很长,需要解析,因此我在后台使用SwingWorker来解析它。当涉及到向GUI提供数据时(比如说,每秒一项),我可以从SwingWorker启动计时器,但这似乎有些过分。有什么理由不在SwingWorker内部睡觉吗 干杯因为SwingWorker不是在EDT上运行的,所以在里面睡觉是完全可以的 SwingWorker专为各种情况而设计 你需要进行长距离跑步的地方 任务在后台线程中运行,并且 在以下情况下提供对UI的更新:

我需要在一段时间内将测试数据提供给Swing interval。数据集很长,需要解析,因此我在后台使用
SwingWorker
来解析它。当涉及到向GUI提供数据时(比如说,每秒一项),我可以从
SwingWorker
启动
计时器
,但这似乎有些过分。有什么理由不在SwingWorker内部睡觉吗


干杯

因为
SwingWorker
不是在EDT上运行的,所以在里面睡觉是完全可以的

SwingWorker专为各种情况而设计 你需要进行长距离跑步的地方 任务在后台线程中运行,并且 在以下情况下提供对UI的更新: 已完成,或正在处理


在我看来,一个
定时器
加上一个
SwingWorker
就太过分了。相反,只要尽可能发布解析后的测试数据,即使是不定期发布。

当您让SwingWorker睡眠时,它将不会加载数据。如果这是需要的,那么这种方法是好的


如果您希望继续加载数据并调整向GUI的馈送速度,那么似乎更好的设计是在GUI中启动计时器,以每隔一段时间检查并从工作程序中提取新数据,而不是工作程序必须对GUI进行
invokeLater
调用

我想你可以睡在swingworker里面(你有自己的线程,所以你可以睡在这个线程里)-我看不出有任何问题。从外部同意,因为没有任何东西可以保证swingworker在计时器+1的下一个动作之前结束