Właściwe używanie ProgressMonitorDialog w Eclipse 4

Mam zestaw interfejsów API, które wykonują operacje na plikach, np.saveToFile(CustomObject objectToSave);

Ponieważ operacja na plikach może być długa, zdecydowałem, że jakieś wskazanie powinno zostać pokazane użytkownikowi, np. pasek postępu.

Czytałem oProgressMonitorDialog więc wypróbowałem to, ale to nie działa dokładnie tak, jak potrzebuję (albo lepiej nie wiem, jak właściwie z niego korzystać).

Obecnie robię:

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();   
        }  
     });   

Ten kod pokazuje okno dialogowe postępu bardzo szybko i kończy się, ale problem polega na tym, że na wolniejszym komputerze będzie to układało się aż doUtils.saveToFile zwrócone, podczas gdy nie mam pojęcia, jak wskazać proces pośredni, dopóki zapisywanie nie zostanie zakończone.

znalazłemwątek wspominając oIProgressMonitor.UNKNOWN ale nie mówi o tym, co się dziejemonitor podczasperformRead(_fileName, monitor);

Jak mam to rozwiązać?

questionAnswers(1)

yourAnswerToTheQuestion