![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
учащийся
Форумчанин
Регистрация: 26.04.2009
Сообщений: 144
|
![]()
Необходимо сделать многопоточное winform приложение, например парсер. Т.е. надо скачать 20 страниц и при этом чтобы скачивание выполнялось в другом потоке и после скачивания каждой из страниц на главной форме писало "первая страница скачана", "вторая" и т.д.
Делал так: объявлял переменные- КоличествоСкачанныхСтраниц и НомерТекущейСтраницыДляСкачивания. Сделал метод, которой скачивает страницу и увеличивает на 1 КоличествоСкачанныхСтраниц. Запускаю таймер, в обработчике проверяется-если КоличествоСкачанныхСтраниц равно НомерТекущейСтраницыДляСкачивания то пишем на формочке "такая то страница скачана" и увеличивается на 1 НомерТекущейСтраницыДляСкачивания и создается новый поток в котором запускается метод скачивания новой страницы. Мне необходимо чтобы скачивание шло одно за одним, а не все 20 одновременно. Подскажите литературу или статьи или примеры или своими словами объясните как правильно это делается. Заранее благодарен за помощь. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
![]() Цитата:
В нем публичное свойство LoadingPages, публичный метод StartLoading() и приватный метод закачки страницы. в методе StartLoading() создаете поток с указателем на метод закачки. и запускаете его. Принцип: Из основной формы вы создаете класс вышеуказанный, и вызываете метод StartLoading() который возвращает вам результат. (0 скорее всего) затем в основной форме создаете и запускаете таймер который наблюдает за LoadingPages и выводит его в ваше место вывода. Значения свойства изменяется в методе ззакачки страницы. Можно еще добавить в класс свойства Complete которое сообщит приложению что загрузка завершена. Таймер естественно все это обрабатывает. в методе StartLoading загрузка происходит в цикле. также можно предусмотреть методы принудительного останова потока. В общем дальше дело Вашей фантазии. ![]()
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
многопоточное программирование | 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 |