← Zurück

Ошибка метода Launch для терминала Quik

Добрый день! Помогите, пожалуйста, решить следующую проблему:

При вызове метода Launch () для QuikTerminal terminal

должен осуществляться запуск терминала, при этом окончание выполнения метода наступает при появлении окна авторизации. Но, к сожалению, после появления окна метод так и продолжает висеть и слетает по таймауту...

Например: terminal = QuikTerminal.Get(QuikPath); terminal.Launch();//Тут все зависает

Скажите, пожалуйста, каким образом решается эта проблема? Заранее благодарю!!!

War dieses Thema hilfreich?

Thema teilen

Kommentare (7)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Ошибку тайм-аута можете привести?

Артем
Артем Autor

Я недавно обновил библиотеку до 2.5.2, ранее стояла 2.5, - в новой версии логика запуска немного поменялась и при вызове метода Launch исключение Timeout больше не возникает. Но метод тем не менее отрабатывает неоправданно долго. - Окно с авторизацией появляется через 8 -10 секунд, а метод продолжает висеть. Вот пример:

//Выводим время старта в информационную панель Globals.Сообщить("Запускаем Quik <" + DateTime.Now.ToString("dd.MM.yyyy H:mm:ss") + ">" , Globals.СтатусСообщения.Инфо);

terminal.Launch();

//Выводим время окончания работы метода в информационную панель
Globals.Сообщить("Quik запущен <" + DateTime.Now.ToString("dd.MM.yyyy H:mm:ss") + ">", Globals.СтатусСообщения.Инфо);

Получается следующая картина

Запускаем Quik <19.11.2010 9:18:31>

Quik запущен <19.11.2010 9:19:32>

Т.е. получается, что в принципе все работает, но расходуется чрезмерное количество времени на запуск Quik, механизм не отлавливает момент когда появилось окно с авторизацией.

Заранее спасибо за ответ!

Mikhail Sukhov
Mikhail Sukhov

Артем: Т.е. получается, что в принципе все работает, но расходуется чрезмерное количество времени на запуск Quik, механизм не отлавливает момент когда появилось окно с авторизацией.

Заранее спасибо за ответ!

Есть такое. Дело в том, что если сразу запустить процесс логина как только появляется окно, то Квик начинает падать. Из-за чего это я не узнавал. Поэтому просто влепил еще одно ожидание на минуту. Процесс авто запуска Квика - это единичные случаи, поэтому не особо должно влиять на работу. Но могу сделать время ожидание настраиваемым.

Артем
Артем Autor

Думаю, лучше сделать настраиваемым, т.к. минута - это нормально в рабочем режиме, но при отладке программы очень много. Спасибо!!!

Garry
Garry

Михаил, добрый день! Тоже проблемы с методом this.Trader.Terminal.Launch(); выдается исключение "Сбой метода WaitForInputIdle. Это может быть связано с отсутствием у процесса графического интерфейса." При этом квик нормально запускается. Еще проблема, если робота перезапустить, а квик оставить запущеным таким образом(т.е. роботом) то this.Trader.Terminal.IsLaunched квик не видит. Если квик закрыть и запустить руками, то this.Trader.Terminal.IsLaunched нормально отрабатывает. Ну это не так важно, главное это что можно придумать с исключением? Вы писали, что сделаете настраиваемым время таймаута Terminal.Launch(). Просто похоже исключение происходит как раз из-за него, окно с логином просто не успевает появиться, можно ли где-нибудь время ожидания подкрутить?

Alexander
Alexander

Garry: Михаил, добрый день! Тоже проблемы с методом this.Trader.Terminal.Launch(); выдается исключение "Сбой метода WaitForInputIdle. Это может быть связано с отсутствием у процесса графического интерфейса." При этом квик нормально запускается. Еще проблема, если робота перезапустить, а квик оставить запущеным таким образом(т.е. роботом) то this.Trader.Terminal.IsLaunched квик не видит. Если квик закрыть и запустить руками, то this.Trader.Terminal.IsLaunched нормально отрабатывает. Ну это не так важно, главное это что можно придумать с исключением? Вы писали, что сделаете настраиваемым время таймаута Terminal.Launch(). Просто похоже исключение происходит как раз из-за него, окно с логином просто не успевает появиться, можно ли где-нибудь время ожидания подкрутить?

Какая версия S#? Метод QuikTerminal.Launch перегружен и возможно запускать с параметром: http://stocksharp.com/doc/help/html/O_T_Ecng_Trading_Quik_QuikTerminal_Launch.htm

Garry
Garry

Да уж извиняюсь, плохо смотрел документацию, спасибо!