在必须阻止UI时使用SwingWorker是否有益?

时间:2013-11-20 20:50:05

标签: swingworker

据我所知,我们使用SwingWorker后台任务来避免阻止UI。当我有一个长时间运行的任务必须阻止UI时,是否有任何区别使它在事件调度程序线程或工作线程中运行?

我看到使用SwingWorker运行任务的示例,并使用模态ProgressMonitor阻止UI。由于必须阻止UI,因此任务(虽然需要时间)可以在事件调度程序线程中运行吗?

1 个答案:

答案 0 :(得分:1)

禁用UI元素(或通过使用玻璃窗格和进度监视器覆盖它们使它们不可用)和使用长时间运行的任务来增加EDT之间存在巨大差异。

例如,您将无法更新进度监视器,因为这通常需要提交给EDT的自动重绘,在任务结束之前它将无法处理。