Uso de ProgressMonitorDialog en Eclipse 4 correctamente

Tengo un conjunto de API que realizan operaciones de archivo, por ejemplo.saveToFile(CustomObject objectToSave);

Dado que la operación de un archivo podría ser larga, decidí que se debería mostrar alguna indicación al usuario, por ejemplo. barra de progreso.

Leí sobre unProgressMonitorDialog Y así lo intenté, pero no funciona exactamente como lo necesito (o mejor no sé cómo usarlo correctamente).

Actualmente hago:

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 muestra un diálogo de progreso muy rápido y finaliza, pero el problema es que en una PC más lenta esto se acumularía hasta queUtils.saveToFile devuelto, aunque no tengo idea de cómo indicar el proceso intermedio hasta que se complete el proceso de guardar.

Encontre unhilo mencionando sobreIProgressMonitor.UNKNOWN Pero no dice lo que pasa enmonitor durante elperformRead(_fileName, monitor);

¿Cómo resolvería esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta