NullProgressMonitor 的作用是不显示进度条,比如在方法参数有一个 ProgressMonitor, 我们不知道他是不是空,而 ProgressMonitor 又在代码中穿插,所以有可能导致非常非常多下面的代码 if (processMonitor != null) ... 等等,这样是非常麻烦的,我们可以在方法的开始判断是不是空,如果是空,就将其赋值一个 NullProgressMonitor 对象,下面即使调用也不会出错,但是不出现进度条。
例如:
public class XXXOperation extends AbstractOperation
{
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
{
monitor = (monitor != null) ? monitor : (new NullProgressMonitor());
// ...
monitor.beginTask("TaskName", IProgressMonitor.UNKNOWN);
// ...
// monitor.setCanceled(true);
monitor.done();
}
}
注:参考文献:http://blog.csdn.net/neusoftware_20063500/article/details/5257906