我正在創建一個解析和處理XML文件的程序。需要有一個在分析和處理XML文件時運行的GUI。有幾個JProgressBars
,4個計數器和2個用於顯示當前文件和目錄的文本字段。在FixedThreadPool中運行預定的線程
我在解析和處理過程中正在更新GUI時遇到問題。我認爲最好的方法是創建一個newFixedThreadPool()
,讓它們同時運行。問題是我想每秒更新一次GUI,但也有解析和處理不斷運行,所以看起來好像有一個ScheduledThreadPool
是不可能的。
所以我的問題是,是否有可能在FixedThreadPool
運行預定的線程和普通線程?如果是這樣,我該如何去做,如果沒有,如果沒有,你們中的任何人對如何解決這個問題有什麼建議嗎?
GUIThread類:
GUIThread()
{
guiThread = new Thread(this);
guiThread.start();
}
@Override
public void run()
{
try{
checkProcessedFiles(getFilesProcessed());
checkDirErrorCount(getErrorCount());
checkAwardCount(getAwardCount());
checkErrorCount(getErrorCount());
} catch(IOException ioe){}
}
ProcessThread類:
ProcessThread()
{
processThread = new Thread(this);
processThread.start();
}
@Override
public void run()
{
try{
MainGUI mGUI = new MainGUI();
Migrate migrate = new Migrate(mGUI.getXMLDirectory());
migrate.processDirectory();
} catch(Exception e){}
}
主要方法:
ExecutorService es = Executors.newFixedThreadPool(2);
es.execute(new GUIThread()); //THIS NEEDS TO BE SCHEDULED
es.execute(new ProcessThread());
廢話,我應該指出這是在Java中。我會谷歌,看看是否有Java中的信號類 – Collin
是的,你應該必須有Java中的WorkerProc(我認爲) – dewelloper