Ошибка при вызове 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 , IList`1 )
at Ecng.Common.DelegateHelper.SafeInvoke[T1,T2](Action`2 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