Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 25.08.2011, 02:00   #1
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Адрес: Украина
Сообщений: 144
Репутация: 35
Восклицание многопоточное приложение

Необходимо сделать многопоточное winform приложение, например парсер. Т.е. надо скачать 20 страниц и при этом чтобы скачивание выполнялось в другом потоке и после скачивания каждой из страниц на главной форме писало "первая страница скачана", "вторая" и т.д.

Делал так:
объявлял переменные- КоличествоСкачанныхСтраниц и НомерТекущейСтраницыДляСкачивания.
Сделал метод, которой скачивает страницу и увеличивает на 1 КоличествоСкачанныхСтраниц.
Запускаю таймер, в обработчике проверяется-если КоличествоСкачанныхСтраниц равно НомерТекущейСтраницыДляСкачивания то пишем на формочке "такая то страница скачана" и увеличивается на 1 НомерТекущейСтраницыДляСкачивания и создается новый поток в котором запускается метод скачивания новой страницы. Мне необходимо чтобы скачивание шло одно за одним, а не все 20 одновременно.

Подскажите литературу или статьи или примеры или своими словами объясните как правильно это делается.

Заранее благодарен за помощь.
Vistar вне форума   Ответить с цитированием
Старый 26.08.2011, 16:25   #2
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 1,867
Репутация: 513

icq: 359393755
По умолчанию

Цитата:
Сообщение от Vistar Посмотреть сообщение
Необходимо сделать многопоточное winform приложение, например парсер. Т.е. надо скачать 20 страниц и при этом чтобы скачивание выполнялось в другом потоке и после скачивания каждой из страниц на главной форме писало "первая страница скачана", "вторая" и т.д.
Делайте класс DownLoader.
В нем публичное свойство LoadingPages, публичный метод StartLoading() и приватный метод закачки страницы.
в методе StartLoading() создаете поток с указателем на метод закачки.
и запускаете его.

Принцип:
Из основной формы вы создаете класс вышеуказанный, и вызываете метод StartLoading() который возвращает вам результат. (0 скорее всего)
затем в основной форме создаете и запускаете таймер который наблюдает за LoadingPages и выводит его в ваше место вывода.
Значения свойства изменяется в методе ззакачки страницы.

Можно еще добавить в класс свойства Complete которое сообщит приложению что загрузка завершена.
Таймер естественно все это обрабатывает.
в методе StartLoading загрузка происходит в цикле.
также можно предусмотреть методы принудительного останова потока. В общем дальше дело Вашей фантазии.
__________________
ICQ - 359393755 E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
многопоточное программирование jul01 Помощь студентам 0 10.06.2011 17:47
многопоточное приложение favorite Общие вопросы Delphi 0 26.05.2011 19:47
Многопоточное приложение MaXoN66613 Помощь студентам 0 07.06.2010 12:36
Многопоточное приложение на Indy 2 Core2Duo Работа с сетью в Delphi 1 09.04.2009 11:42
Многопоточное приложение на Indy Core2Duo Работа с сетью в Delphi 15 08.04.2009 16:45


04:08.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru