Я хочу показать ход выполнения длительной операции (процесса) в пользовательском интерфейсе, чтобы пользователь мог понять состояние фонового задания.Это способ, которым я реализовал, и я чувствую, что код абсурден.Ниже приведен мой код
dialog.run(true,false, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask("Main process", 10);
for (int i = 0; i < 10; i++) {
if (monitor.isCanceled()) return;
monitor.subTask("Status message");
sleep(1000);
// worked increases the monitor, the values are added to the existing ones
monitor.worked(1);
if(i == 3) {
sleep(3000);
callMe();//calling a long running function
}
if(i == 9) {
monitor.subTask("finishing setup..... please wait ");
sleep(2000);
}
}
monitor.done();
}
});
Примечание: где-то в коде есть где-то в коде
здесь, в i == 3
вызывается операция / функция, которая занимает минимум 5 минут послевыполнение функции: прогресс продолжается.
Я не хочу, чтобы прогресс был остановлен во время выполнения функции (длительная операция), скорее, прогресс должен отображаться даже во время ее выполнения.
можеткто-то показывает правильные методы программирования, показывая прогресс