2

私はSwingWorker実装を持っています:

public Void doInBackground() throws InterruptedException
{
     while (true)
     {
            while(_update)
            {

            }
     }
}

_update が false に設定されている場合、EDT を永続的にループさせても安全ですか? または、毎秒スリープ状態にする必要がありますか?

- 編集

SwingWorker を使用することになっているため、使用していないようです。皆さんありがとう。必要に応じて SwingWorker を作成することに固執します。

4

2 に答える 2

3

イベントディスパッチスレッドをループさせるのは安全ではありません。

イベントディスパッチスレッドは、アプリケーションとのユーザーインタラクションを提供するために必要です。イベントを数秒ごとにオフにする場合は、イベントが完了するたびに、イベントまたはその別のコピーをイベントキューに戻す必要があります。

于 2010-12-08T22:32:55.207 に答える
0

別のスレッドを開始して、必要に応じて実行/スリープさせ、必要に応じて SwingUtilities.InvokeLater などを使用して UI 作業を行わせてみませんか?

他のコンテキストがなければ、SwingWorker を誤用しているように見えますか?

于 2010-12-08T22:28:53.393 に答える