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
}
これは(これを実行する際に、JavaがCPUの約95%を使用しています)私のGUIの凍結を行い、CPUの多くを使用しています。私は問題は、スレッドが完了しているかどうかを常にチェックしているため、CPUを集中的に使用することになります。
SwingWorkerクラスにjoin()メソッドはありません。これをCPUの使用量を減らすにはどうしたらいいですか?
からの例外(複数可)を取得する方法問題は状況に応じてSwingWorkerを別の回数使用することです。私はPropertyChangeListenerを使用し、それはトリックでした! – user1026090
@ user1026090ありがとう:はい、PropertyChangeListenerは、あなたの問題を解決するもう一つの素晴らしい方法です。 1 +あなたとjava、mkorbelとkowserに。 –