Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2015, 15:54   #1
sergeevpetro
Пользователь
 
Аватар для sergeevpetro
 
Регистрация: 14.07.2015
Сообщений: 10
Восклицание Работа с WebBrowser без подвисаний формы

Здравствуйте, господа!

Интересует такой вопрос... как можно реализовать работу с WebBrowser так, чтобы в процессе загрузки страниц форма никогда не подвисала?

Пробовал через BackgroundWoker - не помогло, вручную создавал поток - не помогло, пробовал создать новую форму с компонентом и вызвать её из главной формы - не помогло, всегда подвисает. И через Invoke пробовал...и что только не пробовал

Интересует конкретное решение проблемы, а не всякие догадки. Надеюсь здесь есть знающие люди.
sergeevpetro вне форума Ответить с цитированием
Старый 14.07.2015, 16:09   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

У него нет блокирующих поток методов, и сам он при загрузке не должен ничего такого делать в UI потоке, что могло бы подвешивать, только если вы сами блокируетесь пока ждете загрузку и т.п.
Когда именно у вас это происходит? Код покажите.

Кстати, а что вы делаете с ВебБраузером? Если автоматизация какая-то, то берите лучше Selenium, он для этого предназначен.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.07.2015, 16:35   #3
sergeevpetro
Пользователь
 
Аватар для sergeevpetro
 
Регистрация: 14.07.2015
Сообщений: 10
По умолчанию

А интернеты говорят
Цитата:
WebBrowser является COM TWebBrowser и к сожалению может исполняться исключительно в основном потоке.
Alex11223, это происходит при загрузке страницы того или иного сайта. Просто киньте на форму WB и например на баттон сделайте Navigate и во время загрузки страницы поперетаскивайте форму...

через WB делаю авторизацию и различные post-запросы. Где-то делаю через HttpRequest, а где-то через WB... как проще, так и делаю.
sergeevpetro вне форума Ответить с цитированием
Старый 14.07.2015, 16:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и к сожалению может исполняться исключительно в основном потоке.
Чушь какая-то... Я его в доппотоке кручу и ниче. Криво, но работает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.07.2015, 16:43   #5
sergeevpetro
Пользователь
 
Аватар для sergeevpetro
 
Регистрация: 14.07.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чушь какая-то... Я его в доппотоке кручу и ниче. Криво, но работает.
в том-то и проблема, что криво. Уже третий день лопачу сеть в поисках таблетки.
sergeevpetro вне форума Ответить с цитированием
Старый 14.07.2015, 17:04   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Просто киньте на форму WB и например на баттон сделайте Navigate и во время загрузки страницы поперетаскивайте форму...
Дык делал, ничего не зависает.

Цитата:
через WB делаю авторизацию и различные post-запросы.
Говорю ж, берите Selenium для такого, это гораздо проще и никаких UI потоков не надо.
С ним можно даже без отображения страницы с помощью PhantomJS, ну и любой обычный браузер, хром/фф/ие.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.07.2015 в 17:08.
Alex11223 вне форума Ответить с цитированием
Старый 14.07.2015, 17:16   #7
sergeevpetro
Пользователь
 
Аватар для sergeevpetro
 
Регистрация: 14.07.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык делал, ничего не зависает.
А вот сейчас прям удивили...

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Говорю ж, берите Selenium для такого, это гораздо проще и никаких UI потоков не надо.
С ним можно даже без отображения страницы с помощью PhantomJS, ну и любой обычный браузер, хром/фф/ие.
Понял, спасибо! Сейчас буду изучать этого зверя.
sergeevpetro вне форума Ответить с цитированием
Старый 14.07.2015, 17:17   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да может совсем не в WB дело, то?

P.S. По-моему я уловил в чем проблема. WB тормозит процесс на короткое время, когда перерисовывается в окне.
Это можно заметить, если быстро двигать форму в момент отображения сайта. Правда это почти неуловимо, но все же заметить можно.
I'm learning to live...

Последний раз редактировалось Stilet; 14.07.2015 в 17:24.
Stilet вне форума Ответить с цитированием
Старый 14.07.2015, 17:24   #9
sergeevpetro
Пользователь
 
Аватар для sergeevpetro
 
Регистрация: 14.07.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да может совсем не в WB дело, то?
Думаете на железо?
sergeevpetro вне форума Ответить с цитированием
Старый 14.07.2015, 17:29   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Неа. Железо тут точно ни при чем.
Крамольное предположение: Нужно инициализировать СОМ движок. функция CoInitialize().
По крайней мере я ей в потоках пользуюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
javascript формы в WebBrowser Witaliy Общие вопросы Delphi 5 16.07.2012 20:32
Загрузка файла из Webbrowser без диалогового окна _bss_ Работа с сетью в Delphi 9 04.07.2012 14:42
Create Process без подвисаний arxlex Win Api 6 06.04.2012 05:19
Нажать кнопку без name и id в WebBrowser smoldersbolds Работа с сетью в Delphi 1 19.12.2011 11:03
WebBrowser без картинок DOLBY Компоненты Delphi 2 30.01.2008 17:03