¿Debo usar SwingUtilities.invokeLater () dentro de SwingWorker.doInBackground ()?

La forma común de interactuar con EDT desde swing worker es usar el método get (). Pero tengo una tarea larga y un código como este:

public Void doInBackground() {
    for(Object o : objects) {
         doSomething();
         MyGlobalGUIConsole.addMessage("Done for " + o);
    }
}

En la mayoría de los tutotials se recomienda usar valores de retorno para recuperar algo de SwingWorker a EDT, pero puedo:

public Void doInBackground() {
    for(Object o : objects) {
        doSomething();
        SwingUtilities.invokeLater(new Runnable() {        
            @Override                                      
            public void run() {                            
                MyGlobalGUIConsole.addMessage("Done for " + o);
            }                                              
        });                                                
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta