Есть два способа решить эту проблему.
Первый - самый простой способ, как вы предложили, и просто используйте индикатор выполнения, который подпрыгивает вперед и назад. Это не очень хорошо, это не лучший пользовательский опыт, но это лучше, чем блокировать приложение и, по крайней мере, давать обратную связь. Также я предполагаю, что это не то, что происходит регулярно, а время от времени разовое раздражение. Не то, о чем я бы действительно беспокоился.
Однако, если вы действительно беспокоитесь о пользовательском опыте и хотите дать более качественную обратную связь, тогда вам нужно будет попробовать некоторые метрики. Взяв ваш пример DECIMAL
, рассчитайте время изменения на разных счетчиках строк. 100 000 строк, миллион строк и т.д. c и c. Это даст вам время, которое может занять некоторое время. Обратите внимание, другое оборудование, другие вещи, работающие на компьютере, вы никогда не получите его в точности. Но у вас есть оценка .
Когда у вас есть оценка и вы знаете количество строк, вы можете создать реальный индикатор выполнения на основе этих оценок. И если он достигает 100%, а реальная операция не завершена, или если она завершается до того, как вы дойдете до 100% (и вы можете мгновенно перепрыгнуть планку!), Это ... что-то.
Лично я бы выбрал go вариант один и, возможно, добавил бы полезное сообщение, которое обычно делает Windows. "Это может занять несколько минут". Может быть, добавить «Сейчас прекрасное время для кофе!». И симпатичный маленький анимированный гиф :)