Запуск операции сразу после вызова

Здесь можно оставить пожелание относительно функций, которых в программе нет, но которые вам хотелось бы в ней видеть.

Модератор: motyara

avmaksimov
Сообщения: 405
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва

Запуск операции сразу после вызова

Сообщение avmaksimov »

Ситуация: много папок со множеством файлов. Выделяю, пытаюсь скопировать - ноль реакции. Несколько раз пытаюсь перезапустить UC (думал, что глюк) - не закрывается, закрываю через диспетчер задач... Потом "доходит", что UC просто составляет список файлов, одновременно подсчитывая их размер... Подождал минуту-две (если не больше - файлов, правда, много) - отвисло! :( Предложений, собственно, два:
1) после запуска копирования сразу, чтобы появлялось окно;
2) пусть сразу же начинается процесс копирования, а процесс подсчета происходит автоматически.... Что тут плохого... Просто надо сообщить пользователю о том, что идет подсчет.... Но зачем терять время!? Другой вариант - просто выводить подсчет, а запускать уже копирование после подсчета...
С уважением, Андрей.
Аватара пользователя
Max Diesel
Автор программы
Сообщения: 3432
Зарегистрирован: Пт окт 12, 2007 3:26 pm

Сообщение Max Diesel »

1 - эта часть кода написана довольно давно, много раз модифицирована и вместе со всеми закомментированными строками в данный момент выглядит как куртка из одних лишь заплат... мне совсем не хотелось бы сейчас вносить туда значительные изменения, а интересующая модификация как раз находится в области "значительных" (как ни странно).
2 - во-первых никакой "потери времени" не будет, ведь еще со времен школы известно что от перемены мест слогаемых сумма не меняется, соответственно если какой-либо подсчет, производимый до копирования, будет производиться во время него, то просто копирование будет производиться дольше... но главное - если сразу отобразить окно прогресса, то каким образом нужно будет узнать общий размер файлов для отображения общего прогресса?
Поэтому со временем это вероятно будет подкорректировано (об этом уже говорилось на форуме), но сейчас это время еще не подошло.
Altanzar
Сообщения: 21
Зарегистрирован: Пт окт 17, 2008 3:45 am

Re: Запуск операции сразу после вызова

Сообщение Altanzar »

Золотые слова:
Другой вариант - просто выводить подсчет, а запускать уже копирование после подсчета...


Таким образом имеем два варианта. Первый:
1) после запуска копирования сразу показать окно копирования с затененными прогресс барами. Процесс подсчета можно визуализировать, нужное подчеркнуть и реализовать :) : отображая папки в которых производится подсчет; показывать общее количество подсчитываемых файлов/папок; показывать общий размер всех файлов; показывать какую-то анимационную картинку... и т.д.
2) имхо, кнопки Пауза и Отмена в окне во время подсчета размера должны работать так-же как сейчас.

Альтернативный вариант:
Вывод процесса подсчета в отдельном окне с единственной кнопкой Отмена (если по умолчанию копирование не уходит в бекграунд, тогда, имхо, окна выводить не надо).

P.S. Сам программист, и понимаю, что ковыряться в чем-то старом не всегда приятно. Поэтому сам бы я реализовал второй вариант.
avmaksimov
Сообщения: 405
Зарегистрирован: Чт ноя 08, 2007 9:29 am
Откуда: Москва

Re: Запуск операции сразу после вызова

Сообщение avmaksimov »

1. Понимаю, что в старом неприятно ковыряться, сам раньше программировал и наступает период, когда нужно переписывать код и от этого никуда не уйдешь.... Конечно, понятно, что со временем будет, я лишь хотел сообщить о пожелании....
2. С одной стороны, да - а с другой, не всегда оправдано, но сначала подсчет, а потом старт - тоже неплохо.... А про прогресс во время начала - например, так работает сканер касперского, некоторые другие программы.... Дело в том, что есть шанс, что процессы пойдут параллельно, вот в чем дело. Поэтому, перемена мест слагаемых может и не получиться... Отвечаю, как вижу, в таком случае, я: "но главное - если сразу отобразить окно прогресса, то каким образом нужно будет узнать общий размер файлов для отображения общего прогресса?" - сразу не узнать, он будет меняться постепенно....
Итог: я высказал пожелание, приятно, что оно разделено в том или ином виде. Нюансы - это конечно, прерогатива хозяина программы).
С уважением, Андрей.
MiceRus
Сообщения: 103
Зарегистрирован: Чт сен 11, 2008 3:06 pm

Re: Запуск операции сразу после вызова

Сообщение MiceRus »

avmaksimov писал(а):1. Понимаю, что в старом неприятно ковыряться, сам раньше программировал и наступает период, когда нужно переписывать код и от этого никуда не уйдешь.... Конечно, понятно, что со временем будет, я лишь хотел сообщить о пожелании....
2. С одной стороны, да - а с другой, не всегда оправдано, но сначала подсчет, а потом старт - тоже неплохо.... А про прогресс во время начала - например, так работает сканер касперского, некоторые другие программы.... Дело в том, что есть шанс, что процессы пойдут параллельно, вот в чем дело. Поэтому, перемена мест слагаемых может и не получиться... Отвечаю, как вижу, в таком случае, я: "но главное - если сразу отобразить окно прогресса, то каким образом нужно будет узнать общий размер файлов для отображения общего прогресса?" - сразу не узнать, он будет меняться постепенно....
Итог: я высказал пожелание, приятно, что оно разделено в том или ином виде. Нюансы - это конечно, прерогатива хозяина программы).
Смотрим на ТС и на виндовый эксплорер.
ТС - выделяем кучу каталогово с кучей файлов, да хоть Programm Files и Windows. Жмем кнопку копирования. Видим подвис Тотала с песочными часами. Однако стоит нажать ESC - начинается копирование. Т.е. подсчет ОТМЕНЯЕТСЯ. Соответственно пользователь теперь не узнает сколько времени будет копироваться инфа.
Виндовый эксплорер - выделяем папки и перетаскиваем мышкой копируя. Видим надпись "Подготавливается копирование".

Вот и можно выбрать один из способов.