我正在使用Eclipse IProgressMonitor来监控任务的进度。有四个步骤,我编写以下代码。
int totalWork = 100;
String message = "Compiling " + inputFile.getName();
monitor.beginTask(message, totalWork);
monitor.subTask(message + " - first pass");
...// Work
monitor.worked(25);
if (monitor.isCanceled())
return;
monitor.subTask(message + " - invoking");
...// work
monitor.worked(25);
if (monitor.isCanceled())
return;
monitor.subTask(message + " - second pass");
...// Work
monitor.worked(25);
if (monitor.isCanceled())
return;
monitor.subTask(message + " - final pass");
...// Work
monitor.worked(25);
if (monitor.isCanceled())
return;
monitor.done();
由于我的总工作量为100,并且每步增加25,我希望看到进度条显示25%50%等并且增加。但是,进度条会停止在某个数字(33%,38%,20%,在不同机器上的随机类型),并且在整个作业完成之前不会更改。但任务名称会更改。我阅读了这个API的JavaDoc,并按照它的建议(我认为)。任何人都可以帮我告诉我哪里出错了?