Текущий архив: 2007.10.21;
Скачать: CL | DM;
Внизработа с потоками Найти похожие ветки
← →
Сергей М. © (2007-08-08 10:02) [40]Я тоже так и не понял, к чему здесь доп.потоки.
Navgiate работает асинхронно. Можно прямо в основном потоке запустить нужное кол-во браузеров, передав им для загрузки нужные URL и установив единый обработчик OnDocumentComplete для всех экз-ров IE. Тогда браузеры последовательно отрапортуют о результатах загрузки вызовами этого обработчика. Можно сделать тоже самое и в одном-единственном доп.потоке, но зачем плодить другие "подключающиеся" доп.потоки - вот это совершенно непонятно.
← →
Сергей М. © (2007-08-08 10:04) [41]
> Потому что подключение к уже запущенному браузеру ведется
> из другого потока
Да нафих к нему подключаться-то ? Ты ведь и так уже к нему подключилась, создав объект TInternetExplorer, так зачем же после вызова навиг.метода от него отключаться, если прямо здесь же можно получить результат этой навигации ?
← →
Ekate © (2007-08-08 10:16) [42]Суть в следующем, выполняется поток (поток1), который ожидает определенного события.При его наступлении запускается браузер с определенной страницей (в зависимости от события).При запуске браузера включаем другой поток(поток2) (дабы не блокировать выполнение первого), который выполняет ряд действий с браузером.При получении нового события первым потоком загружается новая страница и перезапускается поток 2 с новыми параметрами.
> Да нафих к нему подключаться-то ?
Согласна, можно создавать объект браузера сразу в дочернем потоке (поток 2), и передавать первоначальную адресную строку в качестве параметра.
← →
Сергей М. © (2007-08-08 10:20) [43]
> При запуске браузера включаем другой поток(поток2) (дабы
> не блокировать выполнение первого), который выполняет ряд
> действий с браузером
Что это за "действия" ?
Судя по твоему коду, все эти "действия" вполне могут быть выполнены и в потоке 1, практически никак не влияя на время его реакции на ожидаемое им событие.
← →
Ekate © (2007-08-08 10:25) [44]все просто, сканируем адрес активной страницы, формируем строку (состоит из ряда параметров первого потока и URL), помещаем данную строку в файл, если ее там нет.И так делаем до тех пор, пока один из параметров первого потока не изменится.
← →
Сергей М. © (2007-08-08 10:32) [45]
> сканируем адрес активной страницы
Что ж это за сканирование такое, что оно может ощутимо блокировать работу потока ? И почему его нельзя выполнить прямо в потоке 1 по завершению навигации ?
> формируем строку (состоит из ряда параметров первого потока
> и URL)
Это тоже практически мгновенное действие.
Резона в его выносе в другой доп.поток пока не вижу.
> помещаем данную строку в файл, если ее там нет
А вот это операция явно не мгновенная, ее-то как раз и есть смысл вынести в поток 2, возможно вместе с операцией формирования этой строки.
← →
Ekate © (2007-08-08 10:37) [46]
> Что ж это за сканирование такое, что оно может ощутимо блокировать
> работу потока ?
дело в том, что пользователь может посещать различные web ресурсы, поэтому данное сканирование думаю нужно проводить в потоке.
← →
Сергей М. © (2007-08-08 10:41) [47]
> дело в том, что пользователь может посещать различные web
> ресурсы
Опять непонятно ..
Зачем же ты запускаешь браузеры программно в потоке 1, если юзер в состоянии сам "ручками" запустить браузер и осуществлять навигацию интерактивно ?
← →
Сергей М. © (2007-08-08 10:45) [48]
> Ekate © (08.08.07 10:37) [46]
Ты бы обрисовала идею в целом.
Я так понял, что твоя программа призвана осуществлять некие "фискальные" функции, контролируя и протоколируя ссылки на ресурсы, посещенные юзером ..
← →
cerber (2007-08-08 23:27) [49]ставь снифер на 80 порт и не мешай жить ИЕ.
Страницы: 1 2 вся ветка
Текущий архив: 2007.10.21;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.049 c