Добрый день!
Выполняю следющую комманду:
QT.CancelOrders(false, txtAccount.Text, null, null, this.CSec.ElementAt(0));
Если активна одна заявка, то все корректно отрабатывает, если же несколько активных заявок, после снятия первой заявки выдается исключение - "Элемент с тем же ключом уже добавлен".
В чем может быть причина? Версия библиотеки 2.1. Заранее спасибо.
Комментарии (5)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Текст исключения можно полный привести?
Подробная информация об использовании оперативной (JIT) отладки вместо данного диалогового окна содержится в конце этого сообщения.
************** Текст исключения ************** System.ArgumentException: Элемент с тем же ключом уже был добавлен. в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) в System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary2.Add(TKey key, TValue value) в Ecng.Collections.SynchronizedDictionary2.Add(K key, V value) в Ecng.Trading.Quik.QuikTrader.CancelOrder(Order order) в Ecng.Trading.BusinessEntities.BaseTrader.<>c__DisplayClass2f.<CancelOrders>b__2d(SynchronizedDictionary2 c) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в Ecng.Trading.BusinessEntities.BaseTrader.CancelOrders(Nullable1 isStopOrder, String account, Nullable1 direction, String classCode, Security security) в Ecng.Trading.Algo.SyncTrader1.CancelOrders(Nullable1 isStopOrder, String account, Nullable1 direction, String classCode, Security security) в SQuikTick_v1.Form1.btnDelAllOrders_Click(Object sender, EventArgsТакая ошибка может произойти, если BaseTrader.TransactionIdGenerator вернул номер транзакции, который уже был использован до этого. У Вас в BaseTrader.TransactionIdGenerator какой класс используется?
в версии 2.2.1 все работает. Спасибо.
Ок, теперь понятно. Да, в 2.1 такое бы не прокатило. Я писал в блоге об исправлении.