Дополнен 7 лет назад
Ошибка в строке: while(browser.IsBusy)
Дополнен 7 лет назад
System.InvalidCastException не обработано
HResult=-2147467262
Message=Заданное приведение является недопустимым.
Source=System.Windows.Forms
StackTrace:
в System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
в System.Windows.Forms.WebBrowser.get_Document()
в System.Windows.Forms.WebBrowser.get_IsBusy()
в debts.CheckDebts.ya_Debt() в C:\Repos\DPayd\WindowsFormsApplication1\Main.cs:строка 193
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()
InnerException:
tab.Controls.Add(browser);
tabControl.Controls.Add(tab);
while(browser.IsBusy)
{
thread.sleep(1000);
}
///
Обработка страницы браузера
///
При обработке страницы - ошибка, похоже пока управление не перейдет форме - браузер не прогрузится и работать с ним нельзя (во всяком случае я так подумал).
Решил создать новый поток и в него же параметром передаю браузер.
thread.sleep(1000); // Предположительно тут жду пока в том потоке браузер придет в адекватное состояние
while(browser.IsBusy)
{
thread.sleep(1000);
}
///
Работа со страничкой браузера
///
Однако начиная с browser.IsBusy вылетает ошибка "Заданное приведение является недопустимым.", а в свойствах browser висит "Вычисление функции требует выполнения всех потоков".
Как быть? Кстати все отрабатывает хорошо если в первом примере перед циклом вставить меседжбокс.