Подождите, пока SwingWorker закончит

Я хочу дождаться, пока мой SwingWorker закончит работу, а затем я хочу запустить другой SwingWorker. В этом случае Encrypteer3 - это класс, расширяющий 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 использует около 95% ЦП). Я думаю, проблема в том, что он постоянно проверяет, завершен ли поток, и именно поэтому он так интенсивно загружает процессор.

В классе SwingWorker нет метода join (). Как уменьшить нагрузку на ЦП?

7
задан user1026090 13 November 2011 в 13:43
поделиться