![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
может у кого-нибудь есть пример использования потока и progressbar
например: копирование файла... чтобы progressbar отображал насколько скопирован файл... заранее благодарен
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#2 |
.NET-чик
Форумчанин
Регистрация: 24.03.2007
Сообщений: 569
|
![]()
для простых операций вам хватит BackgroundWorker-а
Код:
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
как передать процент выполнения на прогресбар?
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
и как привязать эти функции к какому либо процессу?
может есть отдельный пример... в архиве.
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
![]()
писать код не буду, уж пардон....... но идея такая..... внутри нового потока создается переменная, в которую в процессе выполнения этого потока передаешь данные (проценты например), запускаешь поток и таймер с малым интервалом.... в событии таймера устанавливаешь процент програссбара равным созданной в потоке переменной..... Я делал так всегда. И нормально)
Надо бы избавиться от привычки ставить многоточие.....
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
![]()
Вот как-то так с воркером
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
pu4koff, спасибо, из твоего примера всё понятно
вчера слил с msdn пример воркера прога вычисляет число фибоначи... так из неё не понятно как это всё работает
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
pu4koff, а как его связать скажем с File.Copy()???
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 25.04.2008
Сообщений: 476
|
![]()
кстати в твоём примере если цикл сделать не 100 а 101, то вылетает ошибка т.к. прогрессбар 101 не поддерживает
![]()
Life if about choices
Make the right choice |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
![]()
никак.
Копирование делать примерно так: 1) Создаём новый файл 2) Копируем из исходного файла килобайт данных (килобайт можете по своему усмотрению поменять на другой объём) 3) Записываем в новый файл этот килобайт информации 4) В прогрессбаре указываем сколько процентов прошло (размер исходного файла и записанный в новый файл объем информации мы знаем). 5) Проверяем. не отменил ли пользователь операцию и если что удаляем новый файл и выходим 6) Переходим на шаг 2, если исходный файл еще не кончился |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поток | Черничный | Общие вопросы Delphi | 5 | 27.09.2008 21:23 |
Поток в никуда... | prizrak1390 | Работа с сетью в Delphi | 1 | 30.06.2008 10:32 |
Убить поток | Баламут | Общие вопросы Delphi | 3 | 22.03.2008 05:04 |