adressmoeistranici
@adressmoeistranici
Делатель

Как узнать сколько будет выполняться вызванная функция?

Нужно узнать сколько будет выполняться вызванная функция.
Эта функция может обработать один файл, может несколько, может обработать целую директорию.
Как показать прогресс ее выполнения?
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 3
yarosroman
@yarosroman Куратор тега C#
C# the best
Как вариант, функцию в отдельный поток, и через callback обновлять прогресс.
Ответ написан
Комментировать
@OwDafuq
Stopwatch s = new Stopwatch();
s.Start();
//Work
s.Stop();
Console.WriteLine(s.Elapsed);
Ответ написан
Комментировать
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Создаётё нулевой счётчик, после обработки каждого файла его инкрементируете и считаете отношение обработанных файлов к общему количеству. Если про количество обработанных/необработанных файлов знает только функция, то можете пробросить в неё колбэк, который будет отдавать два числа при каждом изменении состояния счётчика, а вы снаружи эти числа будете как-то выводить на экран. Либо переделайте функцию так, чтобы она принимала на вход список файлов, тогда наружу надо будет отдавать только число обработанных файлов. Либо выводите прогресс на экран в самой функции, тут уж как хотите.
Если говорить про конкретный способ вывода прогрессбара на экран, то в редакторе можно использовать EditorUtility.DisplayProgressBar, а в рантайме Slider.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы