Как создать дочерние элементы SubMonitor для cuncurrent / параллельного / асинхронного выполнения?
Я могу использовать методы split
или же newChild
создать дочерний элемент для SubMonitor [1]:
SubMonitor firstChild = parentMonitor.split(50);
SubMonitor secondChild = parentMonitor.split(50);
Создание второго потомка автоматически завершает первый потомок [2]:
Каждый SubMonitor имеет только одного активного ребенка за раз. Каждый раз, когда вызывается newChild (int) или split (int), результат становится новым активным дочерним элементом и расходуется любой неиспользованный прогресс от ранее активного дочернего элемента.
Это делает ненужным вызов метода done() для экземпляра SubMonitor, поскольку дочерние мониторы автоматически очищаются при следующем касании родительского элемента.
=> Каков рекомендуемый способ создания дочерних мониторов, если я не хочу запускать одного дочернего монитора за другим, а запускать их одновременно?
Создание второго дочернего монитора немедленно приведет к неверному общему прогрессу, поскольку первый дочерний элемент еще не завершен.
Некоторые идеи:
а) не использовать SubMonitor
вообще для этого параллельного случая, но придерживаться устаревшего SubProgressMontior
(Я еще не проверял, поможет ли это.)?
б) Как-то пропустить потребление неиспользованного прогресса? (The suppressFlags
которые могут быть переданы в метод split, похоже, не дают значения для этого.)
Смежные вопросы