簡體   English   中英

Java Swing long Thread執行

[英]Java Swing long Thread execution

我編寫了一個執行計算的框架,需要很長時間才能執行(大約15分鍾)。 我現在想在Swing中編寫一個接口,它將從數據庫中收集數據並執行此計算。

我現在想知道如何做到最佳實踐? 如果我在事件線程中進行時間密集的計算,整個界面會凍結,直到代碼完成。

我開始認為我將創建一個可以處理所有計算任務的Object,但是我如何處理有關執行期間進度和狀態的狀態信息。 我還有幾個可以執行的操作,例如需要不同數據的不同計算。 是否必須為每個動作寫一個對象? 如果我將視圖和計算分開,我必須交換數據 - 最佳實踐是什么?

謝謝和最好的問候

馬爾科

看一下SwingWorker (適用於Java 6,但是您可以獲得Java 5的庫版本)。 使用SwingWorker,您可以在doInBackground()方法中運行時間密集型方法,並在done()在事件隊列上調用done()方法,從而允許您更新GUI。 如果可能,它還提供了在任務期間通知GUI進度的方法。

有關使用SwingWorker的示例,請閱讀Swing教程中的Concurrency部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM