我已经通过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中所建议。

08-25 02:11