MVC Progress Bar Threading

Estou usando um padrão MVC para o meu design. Quando um usuário pressiona o botão de pesquisa, chamo uma pesquisa no modelo, mas também quero atualizar uma barra de progresso com as informações retornadas desse model

Tentei usar um swingworker, mas a barra de progresso não é atualizada. Suspeito que esteja fazendo algo errado com minha segmentação.

Meu botão, conforme definido no controlador, é:

 class SearchBtnListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            _view.displayProgress();  
        }    
}

Isto chama a pesquisa no modelo e tem a seguinte chamada na visualização:

public void displayProgress() {

    TwoWorker task = new TwoWorker();
    task.addPropertyChangeListener(new PropertyChangeListener() {

         @Override
         public void propertyChange(PropertyChangeEvent e) {
             if ("progress".equals(e.getPropertyName())) {
                _progressBar.setValue((Integer) e.getNewValue());
             }
         }

     });
     task.execute();             
}      


private class TwoWorker extends SwingWorker<Void, Void> {        
    @Override
    protected Void doInBackground() throws Exception {
        _model.startSearch(getTerm());                  // time intensive code
        File file = new File("lock");           
        while (file.exists()){
            setProgress(_model.getStatus());
            System.out.println(_model.getStatus()); // never called
        }           
        return null;
    }  

    protected void done(){
        updateMain();
    }
}

unção dummy definida no modelo para teste:

public int getStatus(){
    Random r = new Random();
    return r.nextInt();
}

questionAnswers(1)

yourAnswerToTheQuestion