Восстановление связи QUIK с сервером

Страницы: 1
RSS
Восстановление связи QUIK с сервером
 
Здравствуйте, мне вот стало интересно - если произошел разрыв связи КВИКа с сервером, вызывается функция OnDisconnected,  при восстановлении связи вызывается функция OnConnected и после нее работа скрипта возобновляется, если он написан достаточно правильно чтобы не отваливаться из за разрыва связи конечно, так вот в какое место скрипта переходит его выполнение после возобновления связи КВИКа и вызова функции OnConnected? я так понимаю что ни в какое место не переходит а скрипт просто работал вхолостую, если в нём такое было предусмотренно - не выполнять команды которые чреваты остановкой скрипта при отсутствии связи, и при возобновлении связи просто все начнет выполняться где предусмотрена проверка isConnected,  или же функция OnConnected передаст управление скрипта в какую либо из предусмотренных функций типа main()?
И если я в OnConnected  сам пропишу переход к функции main() или OnInit() ? Потому как хочу чтобы скрипт после восстановления связи начал работу с самого начала, правильно ли так сделать?
 
Здравствуйте, Анатолий!
Функция OnConnected - это функция обратного вызова, или Callback. После того, как наступает какое-то события, функция вызывается и, как Вы отметили, никуда не переходит работа.
Цитата
И если я в OnConnected  сам пропишу переход к функции main() или  OnInit() ? Потому как хочу чтобы скрипт после восстановления связи начал  работу с самого начала, правильно ли так сделать?
Вызов функций в OnConnected крайне не рекомендуется, так как это может привести к зависанию терминала (из-за того, что callback-и вызываются в основном потоке).
Можно выполнить следующее - поместить в функции main() бесконечный цикл с проверкой условия (например, True или False глобального параметра). И, когда сработает функция OnConnected, задать в ней значение этого параметра такое, чтобы цикл в main() остановился и работа функции продолжилась (так как main() работает в другом потоке это возможно).
И, настроить такое же изменение глобального параметра в функции OnDisconnected, чтобы цикл снова заработал и функция main() находилась в ожидании.
QUIK clients support
Страницы: 1
Читают тему (гостей: 1)
Наверх