Добрый день! Помогите, пожалуйста, решить следующую проблему:
При вызове метода Launch () для QuikTerminal terminal
должен осуществляться запуск терминала, при этом окончание выполнения метода наступает при появлении окна авторизации. Но, к сожалению, после появления окна метод так и продолжает висеть и слетает по таймауту...
Например: terminal = QuikTerminal.Get(QuikPath); terminal.Launch();//Тут все зависает
Скажите, пожалуйста, каким образом решается эта проблема? Заранее благодарю!!!
Kommentare (7)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Ошибку тайм-аута можете привести?
Я недавно обновил библиотеку до 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, механизм не отлавливает момент когда появилось окно с авторизацией.
Заранее спасибо за ответ!
Есть такое. Дело в том, что если сразу запустить процесс логина как только появляется окно, то Квик начинает падать. Из-за чего это я не узнавал. Поэтому просто влепил еще одно ожидание на минуту. Процесс авто запуска Квика - это единичные случаи, поэтому не особо должно влиять на работу. Но могу сделать время ожидание настраиваемым.
Думаю, лучше сделать настраиваемым, т.к. минута - это нормально в рабочем режиме, но при отладке программы очень много. Спасибо!!!
Михаил, добрый день! Тоже проблемы с методом 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
Да уж извиняюсь, плохо смотрел документацию, спасибо!