1

我做对了吗?EDT 是 GUI 的主线程。要开始长时间操作,最好在新线程中运行它。那么为什么我们需要使用 EventQueue 呢?为什么我们不能像在非 Swing 程序中那样简单地创建和运行新线程?

4

2 回答 2

1

如果您在后台运行长时间运行的操作,则没有任何内容表明您需要使用 EventQueue。此处队列的目的是在您必须更新长时间运行过程已完成的 UI 时使用。

当该过程完成时,您将在事件队列上放置某种可运行通知以通知 UI 完成。

于 2011-04-25T14:46:53.437 回答
1

不,EDT 本质上是隐式在主线程上运行的。您不会“移动”EDT。相反,如果你想脱离主线程,脱离 EDT,你就照你说的做,开始你自己的线程。

看看SwingWorker。这是帮助促进这一点的一种常见机制。

于 2011-04-25T14:47:43.413 回答