Ошибка при вызове StopDDE

Ошибка при вызове StopDDE
Atom
6/23/2010
Maxim


Добрый вечер, Михаил. Помогите пожалуйста разобраться в ошибке.

Запускаю экспорт данных из Квика.

Таблицы: "Таблица лимитов по денежным средствам" и "Таблица Купить/Продать".

Эти таблицы переименовал и они имеют названия: "MoneyLimit" и Global.TradesProperty.BuySellTable

В настройках экспорта по DDE указал название MoneyLimit и PaperLimit.

Запускаю следующим образом: Global.Quik.ProcessUnknownDdeData += this.Quik_ProcessUnknownDdeData; Global.Quik.StartDde("MoneyLimit"); Global.Quik.StartDde(Global.TradesProperty.BuySellTable);

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

Global.Quik.StopDde("MoneyLimit"); Global.Quik.StopDde(Global.TradesProperty.BuySellTable);

И при выполнении первой строчки появляется исключение: "PaperLimit\r\nParameter name: category"

at Ecng.Trading.Quik.QuikTrader. (String , IList1 ) at Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action2 handler, T1 arg1, T2 arg2) at . . () at Ecng.ComponentModel.EventDispatcher.<>c__DisplayClass3.<.ctor>b__1()

В чем может быть причина ошибки?


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 6/24/2010
Reply


А что за тип исключения?

Thanks:

Maxim

Avatar
Date: 6/24/2010
Reply


System.ArgumentOutOfRangeException

Thanks:

Mikhail Sukhov

Avatar
Date: 6/24/2010
Reply


А Вы случаем перед стопом DDE не отписываетесь от ProcessUnknownDdeData?

Thanks:

Maxim

Avatar
Date: 6/24/2010
Reply


Отписываюсь. Не нужно?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/24/2010
Reply


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

Thanks:

Maxim

Avatar
Date: 6/24/2010
Reply


Немножко не понял логику.

Старт и стоп ДДЕ, насколько я понимаю, запускает и останавливает поток данных из Квика в QuikTrader.

А подписывание и отписывание от события, запускает и останавливает поток данных от QuikTrader к моей части программы.

И исходя из этого старт и стоп ДДЕ не должно никак быть связано с подпиской и отпиской от события.

Поправьте мои рассуждения.

Thanks:

Mikhail Sukhov

Avatar
Date: 6/24/2010
Reply


Упустили сам ДДЕ. Он и в квике асинхронен и в S#.

Thanks:

Maxim

Avatar
Date: 6/24/2010
Reply


Тысячи извинений, но я все равно не понимаю, что Вы имеете ввиду.

Как связано то, что запускаем или останавливаем экспорт данных из Квика в S#, с тем, что мы подписываемся или отписываемся на какое либо событие в S#?

Thanks:

Mikhail Sukhov

Avatar
Date: 6/24/2010
Reply


QuikTrader через ProcessDataError выводит исключение, если пришла неизвестная категория и обработчик ProcessUnknown не имеет подписчиков.

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy