Как использовать несколько раз индикатор выполнения в консоли? - Котлин

Я работаю с Kotlin создать консольное приложение Java, которое обрабатывает некоторые данные и использует https://github.com/ctongfei/progressbar для отображения в консоли прогресса цикла.

Мой код:

val pb =  ProgressBar("Test Fitness " + fitnessId , maxValueIterator)
for (i in 1..maxValueIterator) {
  ... // Some code not related with the bar
  pb.step(); 
}

Я знаю, что этот компонент для Java, но Kotlin позволяет использовать их, потому что он переносится в Java при компиляции (поправьте меня, если я ошибаюсь).


Эта проблема:

Проблема возникает при повторном запуске цикла.
Индикатор выполнения включается (как мигание с одним и другим) с предыдущим (это уже закончилось, и это 100%) и иногда печатает много строк с одним или другим, обе ошибки происходят, когда процент от текущий бар увеличивается.
Я не могу определить, где ошибка, документация показывает тот же способ использования.

Пример ошибки (вывести много строк одновременно):

Test Fitness 372 100% [==========... // This "Fitness 372" was finished and continues to appear
Test Fitness 299 100% [==========... // The same with this
Test Fitness 921 82% [==========... // This "Fitness 921" is the one that is running

1 ответ

После прочтения различных методов ProgressBar учебный класс.
Я обнаружил, что после завершения использования каждого индикатора выполнения, вам нужно сделать .close(), если это не сделано, это как если бы у вас было несколько установок одновременно.

Другие вопросы по тегам