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의 약 95 %를 사용) CPU를 많이 사용합니다. 문제는 스레드가 완료되었는지 지속적으로 확인하고있는 것이므로 CPU 집중적 인 문제입니다.
SwingWorker 클래스에는 join() 메서드가 없습니다. CPU 사용량을 줄이려면 어떻게해야합니까?
에서 예외 (들)을 얻는 방법 문제는 상황에 따라 다른 횟수의 SwingWorker를 사용한다는 것입니다. PropertyChangeListener를 사용했고 트릭을했습니다! – user1026090
@ user1026090 감사합니다. 예, PropertyChangeListener는 문제를 해결하는 또 다른 좋은 방법입니다. 1 + 당신과 자바, mkorbel 및 kowser. –