Usando ProgressMonitorDialog no Eclipse 4 corretamente

Eu tenho um conjunto de APIs que fazem operações de arquivo, por exemplosaveToFile(CustomObject objectToSave);

Como uma operação de arquivo pode ser demorada, decidi que alguma indicação deveria ser mostrada ao usuário, e. Barra de progresso.

Eu li sobre umProgressMonitorDialog e então eu tentei, mas não funciona exatamente como eu preciso (ou melhor, eu não sei como usá-lo corretamente).

Atualmente eu faço:

ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(theShell);  
    try {  
        progressDialog.run(false, true, new IRunnableWithProgress() {  

        @Override  
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {  
            monitor.beginTask("Saving your data", 100);  
            try {  
                Utils.saveToFile(objectToSave);  
            } catch (Exception e) {  
            // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
            monitor.done();   
        }  
     });   

Este código mostra um diálogo de progresso muito rápido e termina, mas o problema é que em um PC mais lento isso iria empilhar atéUtils.saveToFile retornou, enquanto não tenho idéia de como indicar o processo intermediário até que o salvamento seja concluído.

Achei umfio mencionando sobreIProgressMonitor.UNKNOWN mas não diz sobre o que acontece emmonitor durante operformRead(_fileName, monitor);

Como eu resolveria isso?

questionAnswers(1)

yourAnswerToTheQuestion