我已经通过SubMonitor.convert(monitor,IProgressMonitor.UNKNOWN)创建了SubMonitor。即使我提供的总工作量为UNKNOWN,在内部它也会将滴答声的总数分配为1000(请参阅SubMonitor.java)。在这种情况下如何使整体工作为未知状态?
最佳答案
SubMonitor
并不真正支持未知的进度。
您可以只使用IProgressMonitor
而不进行转换,也可以使用如下代码:
void unknownProgress(IProgressMonitor monitor)
{
SubMonitor subMonitor = SubMonitor.convert(monitor);
while (hasMore())
{
// Use 1% of the remaining space for each iteration
processNext(subMonitor.setWorkRemaining(100).split(1));
}
}
如this article中所建议。