5

ある期間にわたってSwing間隔にテストデータをフィードする必要があります。データセットは解析に時間がかかるためSwingWorker、バックグラウンドで解析するためにを使用しています。GUIへのデータのフィード(たとえば、1秒に1つのアイテム)に関しては、Timerから開始できSwingWorkerますが、これはやり過ぎのようです。SwingWorkerそれ自体の中から眠らない理由はありますか?

乾杯

4

2 に答える 2

4

SwingWorkerEDTで実行されないため、内部でのスリープは完全に問題ありません。

SwingWorkerは、長時間実行されるタスクをバックグラウンドスレッドで実行し、完了時または処理中にUIに更新を提供する必要がある状況向けに設計されています。

私の意見では、aTimerに加えてaSwingWorkerはやり過ぎでしょう。代わりに、不規則な間隔であっても、可能な限り、解析されたテストデータを公開するだけです。

于 2011-06-07T12:35:55.867 に答える
3

SwingWorkerをスリープ状態にしている間、データは読み込まれません。それが望まれる場合、このアプローチは問題ありません。

データのロードを継続し、GUIへのフィードのペースを調整したい場合は、GUIでタイマーを開始して、ワーカーではなく、ワーカーから新しいデータを一定間隔でチェックしてプルする方がよいようです。invokeLaterGUIにコールバックする必要があります。

于 2011-06-07T12:42:33.073 に答える