ある期間にわたってSwing間隔にテストデータをフィードする必要があります。データセットは解析に時間がかかるためSwingWorker
、バックグラウンドで解析するためにを使用しています。GUIへのデータのフィード(たとえば、1秒に1つのアイテム)に関しては、Timer
から開始できSwingWorker
ますが、これはやり過ぎのようです。SwingWorker
それ自体の中から眠らない理由はありますか?
乾杯
ある期間にわたってSwing間隔にテストデータをフィードする必要があります。データセットは解析に時間がかかるためSwingWorker
、バックグラウンドで解析するためにを使用しています。GUIへのデータのフィード(たとえば、1秒に1つのアイテム)に関しては、Timer
から開始できSwingWorker
ますが、これはやり過ぎのようです。SwingWorker
それ自体の中から眠らない理由はありますか?
乾杯
SwingWorker
EDTで実行されないため、内部でのスリープは完全に問題ありません。
SwingWorkerは、長時間実行されるタスクをバックグラウンドスレッドで実行し、完了時または処理中にUIに更新を提供する必要がある状況向けに設計されています。
私の意見では、aTimer
に加えてaSwingWorker
はやり過ぎでしょう。代わりに、不規則な間隔であっても、可能な限り、解析されたテストデータを公開するだけです。
SwingWorkerをスリープ状態にしている間、データは読み込まれません。それが望まれる場合、このアプローチは問題ありません。
データのロードを継続し、GUIへのフィードのペースを調整したい場合は、GUIでタイマーを開始して、ワーカーではなく、ワーカーから新しいデータを一定間隔でチェックしてプルする方がよいようです。invokeLater
GUIにコールバックする必要があります。