Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ProgressBar+Timer оценка времени и состояния, Как работать с ProgressBar&Timer? 
:(
    Опции темы
myendlessness
Дата 14.8.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 8.8.2008

Репутация: нет
Всего: нет



Есть метод, который сжимает файл, предположим его название Encode(). Как мне оценить время сжатия? и сделать для этого метода ProgressBar? Если не трудно скидывайте литературу на эту тему. Всем спасибо!  
PM MAIL   Вверх
Bestoloch
Дата 14.8.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 29.6.2009

Репутация: нет
Всего: нет



Нужно отслеживать какую работу выполняет метод за единицу времени, а далее расчет.
PM MAIL   Вверх
myendlessness
Дата 17.8.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 8.8.2008

Репутация: нет
Всего: нет



Это нереально, так как данный метод находится в библиотеке, я его только подключаю в программе, грубо говоря в главной программе это всего одна строчка! 
PM MAIL   Вверх
myendlessness
Дата 17.8.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 8.8.2008

Репутация: нет
Всего: нет



Так со временем я разобрался, Timer оказался не нужным, всё просто и легко: 
Код

                            
                            Stopwatch sw = new Stopwatch();

                            sw.Start();
                            Encoder(........);  // process
                            sw.Stop();
                            
                            TimeSpan ts = sw.Elapsed;  
                            
                            string elapsedTime = String.Format("{0:00}:{1:00}:{2:00:{3:00}",
                            ts.Hours, ts.Minutes, ts.Seconds,
                            ts.Milliseconds / 10);
                            
                            ProcessTime.Text = "Time: " + elapsedTime;


Теперь осталось понять, что делать с ProgressBar? 

Это сообщение отредактировал(а) myendlessness - 17.8.2009, 11:20
PM MAIL   Вверх
mihryak
Дата 17.8.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(myendlessness @  17.8.2009,  12:19 Найти цитируемый пост)
Теперь осталось понять, что делать с ProgressBar? 

никак ты его не прикрутишь, если вызываемый метод не предусматривает такого использования
можно разве что бесконечный прогрессбар сделать, как при загрузке системы, например
PM MAIL ICQ   Вверх
Heinzz
Дата 17.8.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Надо оценить время за которое предположительно произойдет сжатие.
Посжимай файлы с разными расширениями, замерь потраченное время, а затем отталкиваясь от формата файла и от его размера можно предположить время операции. Время мерить ты умеешь, ну а прогресбар пусть показывает потраченное время (за максимум возьми оценочное время). Иных путей нет smile 


--------------------
user posted image
PM MAIL   Вверх
myendlessness
Дата 18.8.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 8.8.2008

Репутация: нет
Всего: нет



Спасибо ребята, что откликнулись, решил отказаться от ПрогрессБар, так как всё равно это будет очень приблезительно, и никакого реального хода процесса оно не будет отображать smile  

Теперь вопрос почти научный, в дополнение к этой теме smile 

Вот есть у меня мой кодер, могу измерять время, а теперь я хочу сравнить его с Rar и Zip, как правильно мне это сделать? То есть выставить их последовательно и сжимать один файл, это не будет совсем правильно, так как я не знаю сколько машинного времени уделяется для каждого из кодеров, тогда следует самому распределять ресурсы? Делать ли это параллельно или последовательно? У кого какие соображения и как это вообще реализовать на С#? 
PM MAIL   Вверх
mihryak
Дата 18.8.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



1. приготовь наборы тестовых файлов, хотя бы
- большой текстовый
- кучку маленьких текстовых
- что-нибудь плохо архивируемое (mp3, avi, тот же рар-зип)
- что-нибудь бинарное хорошо сжимаемое (bmp, здоровые exe)
- комбинированый контент

2. сделай тестовое приложение, запускающее последовательно каждый архиватор с десяток-другой раз, сравни среднее время сжатия и размеры получившихся архивов
PM MAIL ICQ   Вверх
myendlessness
Дата 18.8.2009, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 8.8.2008

Репутация: нет
Всего: нет



Дело в том, что архивирую я пока только TIF файлы, но суть вопроса немного не в этом, нужно чтобы все архиваторы работали в одинаковых условиях, контент у меня есть, но нужно создать им одинаковые условия, я так понимаю нужно сделать процесс архивации всех кодеров с самым высоким приоритетом, чтобы во время работы кодеров другие задачи не выполнялись и все машинные ресурсы тратились только на работу с кодерами? В таком случае их можно будет "справедливо сравнивать"?
PM MAIL   Вверх
mihryak
Дата 18.8.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



одинаковых условий ты никогда не добъёшься, их разница обычно компенсируется многократными прогонами
причём, лучше даже брать не просто среднее, а среднеквадратичное значение, чтобы убрать откровенно "провисшие" варианты
а с приоритетами особого смылса заморачиваться, думаю, не стоит
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.