![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| Megalan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 18.7.2007 Репутация: нет Всего: нет |
Стоит такая задача:
Имеется программа которая скачивает с сервера некоторое количество достаточно больших файлов. Но при загрузке файлов интерфейс виснет. Не мог бы мне кто-нибудь обьяснить как сделать так чтобы программа не висла и при этом был прогресс бар который показывал сколько уже скачанно от файла? Зарание спасибо за ответ. Как основу для загрузки файлов использую библиотеку Pantheon.Software.Core ps в backgroundworker полный ноль. Как и в многопоточности +) |
|||
|
||||
| alexburzak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 12.3.2007 Где: Hadera Репутация: нет Всего: 1 |
Вот ты и сам ответил на свой вопрос... Юзай асихронную обработку... -------------------- |
|||
|
||||
| unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: нет Всего: 8 |
Посмотри в MSDN пример на эту тему, там всё очень хорошо показано, как использовать контрол.
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref3/html/T_System_ComponentModel_BackgroundWorker.htm По идее можно было бы выделять потоки, но с BackgroundWorker разработка существенно легче. По идее нужно написать метод инициализации, в конце которого поставить вызов RunWorkerAsync. Добавить три обработчика событий DoWork (начало работы, вызывается после RunWorkerAsync), ProgressChanged (для отслеживания прогресса) и RunWorkerCompleted (вызывается после завершения всей работы). Основная суть в том чтобы вызывать метод, ну например, в котором загружаются файлы из обработчика события DoWork, тогда он будет выполняться в другом потоке, параллельно тому, который отвечает за обработку формы, а сам DoWork вызывается с помощью RunWorkerAsync, например из события кнопки. Опять же вернусь к примеру, когда пишут Application.Run(New FibonacciForm) запускают форму на потоке и часто даже не задумываются, что так или иначе работают в потоке, хотя всё программирование для windows идёт в них. Вот почитай смежный пример как раз для твоего случая: How to: Download a File in the Background ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxmclictl/html/9b7bc5ae-051c-4904-9720-18f6667388bd.htm Самое главное не бояться, потоки это просто -------------------- ![]() обычный день на винграде |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |