Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Потоки

29K
12 марта 2011 года
Quiet as ice
52 / / 14.10.2008
Добрый день. Никто не подскажешь, как в запущенный поток передать все свойства webBrowser? Мне вот например в потоке нужно использовать webBrowser1.Document.DomDocument и дальше в этом же потоке с ним работать и изменять его.


Заранее спасибо за ответ.
278
12 марта 2011 года
Alexander92
1.1K / / 04.08.2008
Передайте сам объект webBrowser1. В чем проблема? Чем вы поток запускаете, через BackgroundWorker?
29K
12 марта 2011 года
Quiet as ice
52 / / 14.10.2008
вот запускаю сам поток:

 
Код:
thr1 = new Thread(new ThreadStart(delegate()
            {
                some_function();
            }));
thr1.Start();



вот, если изменить что-то из самого потока, тогда все норм:

 
Код:
this.Invoke(new ThreadStart(delegate()
                {
                    webBrowser1.DocumentText = "";
                }));


а получить в потоке webBrowser1.Document.DomDocument не выходит :(

в some_function у меня цикл, при каждом проходе нужно изменять данные в WebBrowser, то есть совершать какие-то переходы и затем получать эти данные.
278
12 марта 2011 года
Alexander92
1.1K / / 04.08.2008
Запустите поток с параметром:
 
Код:
thr1.Start(webBrowser1);


Вот, посмотрите.
29K
12 марта 2011 года
Quiet as ice
52 / / 14.10.2008
Спасибо, все получилось. Теперь возникла чуток другая проблема.
Передал thr1.Start(webBrowser1.Document.DomDocument);

Но теперь не работает:
\\data передаваемый объект

IHTMLWindow2 frame;
IHTMLDocument2 doc = (IHTMLDocument2)data;
frame = (IHTMLWindow2)doc.frames.item(1); \\ Ошибка: Заданное приведение является недопустимым.

То есть достучаться до самого документа получается, с этим проблем нет, а вот до фрейма не получается. Может я что-то не так делаю?
278
12 марта 2011 года
Alexander92
1.1K / / 04.08.2008
А зачем вообще в последней строке приведение? У вас же frame объявлен как IHTMLWindow2, и item() возвращает тот же тип.
29K
12 марта 2011 года
Quiet as ice
52 / / 14.10.2008
действительно, вы правы, но роли это не играет. Ошибка не пропала
29K
15 марта 2011 года
Quiet as ice
52 / / 14.10.2008
Всем спасибо, вместо потока, который задействовал из-за реализации "нормальной" паузы, реализовал все с помощью таймера(ов). Большое спасибо за ответы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог