如何将进度监视器传递给几个子程序?

时间:2014-02-24 10:09:35

标签: java eclipse eclipse-plugin eclipse-rcp progressmonitor

假设我有一个API方法,用于执行长期操作,因此接收监视器作为参数,如

org.eclipse.ui.part.EditorPart.doSave(IProgressMonitor monitor)

如果我在这个方法中有单一的操作,我会编码,例如,写一个图像

imageFile.create(imageInput, false, monitor);

但是如果我在单doSave内做了几个长期的子程序怎么办?如何让每个监视器测量50%或者什么?

imageFile.create(imageInput, false, monitor);
descriptionFile.create(descriptionInput, false, monitor);

1 个答案:

答案 0 :(得分:2)

对每个方法使用SubProgressMonitor

monitor.beginText("task", 100);

imageFile.create(imageInput, false, new SubProgressMonitor(monitor, 50));

descriptionFile.create(descriptionInput, false, new SubProgressMonitor(monitor, 50));

给予所有子进度监视器的'tick'计数的总和应与beginTask调用中给出的'tick'计数相匹配。