如何在eclipse RCP中使SubMonitor的总工作量为IProgressMonitor.UNKNOWN?

How to Make the total work of SubMonitor as IProgressMonitor.UNKNOWN in eclipse RCP?

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