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