|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.02.2014, 16:31 | #1 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
Сбор инфы в несколько потоков
Привет!
Как получить данные с сайта с помощью нескольких динамических потоков? Не копировать же один и тот же код в несколько созданных руками потоков, должен быть более разумный вариант. Посерфил гугл, не нашел пока, то что нужно. Возможно Вы подскажите или поможете примером, буду благодарен. |
16.02.2014, 16:38 | #2 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
В помощь: Работа с потоками (C# и Visual Basic) |
|
16.02.2014, 16:39 | #3 |
Пользователь
Регистрация: 02.05.2012
Сообщений: 45
|
а зачем копировать? поток описан как класс, создайте столько объектов класса, сколько необходимо, не забудьте про синхронизацию
Skype: cotseec
ICQ: 330-171-495 |
16.02.2014, 16:45 | #4 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
А как быть с idHTTP?? Для каждого потока свой. Например поток 1 = idHTTP1, поток 2 = idHTTP2. Не могу же я получать данные с 5 потоков через один экземпляр idHTTP.
|
16.02.2014, 16:49 | #5 |
Пользователь
Регистрация: 02.05.2012
Сообщений: 45
|
либо создавать в потоке idHTTP динамически (соответственно для каждого потока свой объект idHTTP) либо получить информацию в главном потоке, а потом раздать дочерним потокам для ее обработки - это все зависит от логики и/или предназначения программы
Skype: cotseec
ICQ: 330-171-495 |
17.02.2014, 06:51 | #6 | |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
С синхронизацией ситуация сложная, так как когда я обращаюсь к визуальным объектам на форме я использую параметры, например в мемо вывожу номер текущей позиции в цикле.
Код:
А если передавать эти параметры глобальным переменным, то когда будут работать несколько потоков они будут перезаписывать друг друга, что в итоге приведет к хаусу. Как быть, не знаю. Цитата:
Код:
|
|
18.02.2014, 12:09 | #7 | |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
Цитата:
необходимые параметры описывал как поля в классе, + пишутся 2 процедуры: Код:
SendProgress('загрузка страницы',d); минусы: загромождение кода вспомогательными полями и процедурами плюсы: простота использования на мой взгляд плюсов несоизмеримо больше =) |
|
18.02.2014, 16:35 | #8 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 144
|
Synchronize(procedure begin Update(1); end);
религия не позволяет написать? Даже так можно! Synchronize(procedure begin ShowMessage('blabla'); end); |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Логгирование, несколько потоков | pa6kevi4 | Общие вопросы .NET | 3 | 12.06.2010 22:32 |
[Вопрос] IdHttp в несколько потоков | TilerDerton | Работа с сетью в Delphi | 3 | 22.09.2009 22:14 |
Ссылка на файл из текущей папки! Сбор инфы в один файл! | mephist | Microsoft Office Excel | 11 | 10.07.2009 13:51 |
Несколько потоков | Adm | Общие вопросы Delphi | 13 | 18.01.2008 20:04 |
Сбор инфы с сайта. | Mss_Smith | Помощь студентам | 6 | 17.06.2007 16:26 |