Перезагрузка обозревателя

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
Задавал вопрос в ветке новичков, но никто не ответил.


Суть проблемы в том, что блок перезагрузить экземпляр обозревателя часто не может выполнить перезагрузку с первого раза, в окне обозревателя выводится сообщение внутренняя ошибка обозреватель не загружен и при этом выход из блока по зелёной ветке.

Также такая ошибка может возникнуть в рабочем цикле, после чего блок C# зависает на вечно .
Как отловить такое состояние в С# и возобновить работу обозревателя?

кроме прочего instance.Reload() ничего не делает, по крайней мере визуально этого не видно.

и еще проблема

do {
if (...) {return new Exeption("что-то пошло не так");}
} while (...)

ожидается выход по красной ветке, но по факту по зелёной. Само исключение в логах видно, то-есть оно срабатывает.

версия 5.10.6
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
do {
if (...) {throw new Exeption("что-то пошло не так");}
} while (...)
 

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 241
Благодарностей
5 848
Баллы
113
instance.Reload работает в версии не ниже 5.10.4.0.
 
  • Спасибо
Реакции: Биржевик

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
instance.Reload работает в версии не ниже 5.10.4.0.
Вы правы, на сервере установлена 5.10.1 (моя ошибка, у заказчиков разные версии)

А что насчёт других вопросов

var tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) {
return new Exeption("Вкладка не найдена");
}

if (tab.IsBusy) tab.WaitDownloading();

do {

tab.MainDocument.... // Действия на странице

...
...
...
// Где-то в цикле в любой момент отваливается обозреватель, как возобновить его работу, как обнаружить падение?
//В моём случае происходит зацикливание, хотя вероятно работа с tab после падения обозревателя должна вызывать ошибки.

if (...) {return new Exeption("что-то пошло не так");} //ожидается покинуть блок C# по красной ветке, по факту выход по зелёной.

} while (...)

if (...) {return new Exeption("что-то пошло не так");} //а в этом месте все как и ожидается выход из блока С# по красной ветке.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)