我想等待我的SwingWorker完成工作,然後我想執行另一個SwingWorker。在這種情況下,Encrypteer3是一個擴展SwingWorker的類。等待SwingWorker完成
我的代碼:
input = txtTekst.getText();
key = txtKey.getText();
System.out.println("thread1 start");
Encrypteer3 a = new Encrypteer3();
a.execute();
while(a.isDone()==false){
// do nothing
}
input = output;
key = txtKey1.getText();
System.out.println("thread2 start");
Encrypteer3 b = new Encrypteer3();
b.execute();
while(b.isDone()==false){
// do nothing
}
這使我的GUI凍結,並使用大量的CPU(執行此當Java使用約95%的CPU)。我認爲問題在於它經常檢查線程是否完成,這就是CPU佔用太多的原因。
SwingWorker類沒有join()方法。我怎樣才能使這個CPU密集度更低?
異常(S)問題在於我根據情況使用該SwingWorker的次數不同。我使用了PropertyChangeListener,並且做到了這一點!謝謝你的回答 – user1026090
@ user1026090:是的,PropertyChangeListener是另一種解決問題的好方法。 1+給你和java,mkorbel和kowser。 –