Ровно через 10 минут закрывается консольное приложение
Atom Ответить
27.12.2012


Имеется непонятное поведение консольного приложения, использующего SmartTrader. А именно самопроизвольное закрытие консольного приложения ровно через 10 минут с момента создания экземпляра класса SmartTrader. При это даже не обязательно вызывать метод Connect().

Код

...
static void Main()
{
    Console.WriteLine(" Press any key to continue. #1");
    Console.ReadKey(true);

    SmartTrader trader = new SmartTrader(login, password);

    Console.WriteLine(" Press any key to continue. #2");
    Console.ReadKey(true);
    ...
}


Т.е. в "месте #1" программа может находиться любое время, пока не будет нажата любая клавиша. В тоже время после создания объекта "trader", в "месте #2", если не будет нажимата никакая из клавиш, то программа проработает ровно 10 минут с момента создания экземпляра класса SmartTrader, после чего консольное приложение автоматически завершиться. При этом если даже весь код в методе main() обернуть в контрукцию try ... catch ..., то в область catch мы не попадаем и как бы никаких исключительных ситуаций не происходит. Более того, даже обернув весь код в методе main() в конструкцию try ... finally ..., то в область finally мы почему-то тоже не попадаем ((( При этом никаких сообщений об ошибках и прочее ни на экран, ни в консоль не выводится.
В итоге единственное что есть в остатке после завершения приложения это все лишь код завершения программы равный "-1":
"The program '[8792] SampleSmartConsole.vshost.exe: Managed (v4.0.30319)' has exited with code -1 (0xffffffff)."

На самом деле к такому (код выше) упрощенному варианту кода я дошел естественно от реального кода. При этом в реальном коде, есть рабочий робот, который выполняет подключение к СмартКому, принимает потоки, отправляет заявки и вообще отлично работает и делает все, что от него требуется, но, к сожалению, всего 10 минут, после чего консольная программа схлопывается.

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

Самое обидное, что даже зацепиться не за что в этой проблеме, просмотрел ветки форума по SmartCOM-у тоже ничего подобного не увидел, что еще более странно.

Версии ПО:
StockSharp - 4.1.1.
SmartCOM - 2.2.
Windows 7 64 bit (исходные коды скомпилированы под 32-х битную систему)

Теги:


Спасибо:




4 Ответов
Alexander

Фотография
Дата: 27.12.2012
Ответить


Лицензию получите.
Если б подписались на событие ProcessDataError - увидели бы ошибку сами
Спасибо:

StockSharp

Фотография
Дата: 27.12.2012
Ответить


Сервер лицензий временно не работает, возможно что старая лицензия полетела, напишите на info ваш идентификатор, вышлем новую лицензию.
Спасибо:

Aleksey Bulygin

Фотография
Дата: 28.12.2012
Ответить


Лицензия была, при этом рабочая, может и правда полетела. Спасибо, пришлю идентификатор.

Когда начинал писать робота и возникли проблемы с лицензией (закончилась триальная на месяц), то при создании объектов появлялись ошибки, четко информирующие об отсутствии лицензии. Более того, еще раз внимательно изучив документацию, не нашел в ней ни одного упоминания про 10-ти минутный рабочий период библиотеки при нерабочей лицензии, поэтому первоначальные подозрения на ее счет были мной отвергнуты.
Автор топика
Спасибо: Геннадий Ванин (Gennady Vanin)

Aleksey Bulygin

Фотография
Дата: 28.12.2012
Ответить


Новую лицензию пока не получил.
Решил попробывать добавить обработчик ProcessDataError, как советовал Александр, на описанных выше условиях. В итоге ничего не изменилось, а самое интересное то, что в этот обработчик программа не заходит, как и раньше просто рубится через 10 минут и все. Так что добавление этого обработчика, к сожалению, нисколько не просветило суть проблемы.
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy