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 に答える