Коллекция была изменена после создания экземпляра перечислителя.

Коллекция была изменена после создания экземпляра перечислителя.
Atom
2/10/2018
Prival


Версия 4.4.4 RealTimeEmulationTrader1 Иногда при отправке ордера выскакивает вот такая ошибка. Подскажите что можно сделать? 23:40:07.631| |SecurityMarketEmulator|Заявка 83897803 полностью исполнена. 23:40:07.631| |SecurityMarketEmulator|Сделка 21 заявки 83897803 P=119130,0 V=1. 23:40:07.631| |RealTimeEmulationTrader1|Order changed: 83897803/21 RIH8@FORTS Симулятор Покупка Цена=119130.0 Объем=1 Сост=Done Бал=0 23:40:07.655|Error |EmulationMessageAdapter|System.InvalidOperationException: Коллекция была изменена после создания экземпляра перечислителя. в System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) в System.Collections.Generic.SortedSet1.Enumerator.MoveNext() в System.Collections.Generic.SortedDictionary2.Enumerator.MoveNext() в System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() в System.Linq.Buffer1..ctor(IEnumerable1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.BuildQuoteChanges(SortedDictionary2 quotes) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.CreateQuoteMessage(SecurityId securityId, DateTimeOffset timeStamp, DateTimeOffset time) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.AcceptExecution(DateTimeOffset time, ExecutionMessage execution, ICollection1 result) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection1 result) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection1 result) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message) в StockSharp.Algo.Testing.MarketEmulator.SendInMessage(Message message) в StockSharp.Algo.Testing.EmulationMessageAdapter.OnSendInMessage(Message message) в StockSharp.Messages.MessageAdapter.SendInMessage(Message message) 23:40:07.656|Error |RealTimeEmulationTrader1|System.InvalidOperationException: Сообщение 'Execution,T(L)=2018/02/09 23:40:07.656,T(S)=2018/02/09 23:40:07.656,(Transaction),Sec=S#:@, Native:,Type:,Ord=/0/83897803,Fail=System.InvalidOperationException: Коллекция была изменена после создания экземпляра перечислителя. в System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) в System.Collections.Generic.SortedSet1.Enumerator.MoveNext() в System.Collections.Generic.SortedDictionary2.Enumerator.MoveNext() в System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() в System.Linq.Buffer1..ctor(IEnumerable1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.BuildQuoteChanges(SortedDictionary2 quotes) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.CreateQuoteMessage(SecurityId securityId, DateTimeOffset timeStamp, DateTimeOffset time) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.AcceptExecution(DateTimeOffset time, ExecutionMessage execution, ICollection1 result) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection1 result) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection1 result) в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message) в StockSharp.Algo.Testing.MarketEmulator.SendInMessage(Message message) в StockSharp.Algo.Testing.EmulationMessageAdapter.OnSendInMessage(Message message) в StockSharp.Messages.MessageAdapter.SendInMessage(Message message),Price=0,OrdVol=,TrVol=,Bal=,TId=,Pf=,TPrice=,UId=,State=Failed' привело к ошибке обработки. ---> System.InvalidOperationException: Done -> Failed в StockSharp.Algo.TraderHelper.CheckModification(OrderStates prev, OrderStates curr) в StockSharp.Algo.EntityCache.<>c__DisplayClass75_0.<ProcessOrderFailMessage>b__0(Tuple2 t) в System.Linq.Enumerable.WhereSelectListIterator2.MoveNext() в StockSharp.Algo.Connector.ProcessOrderMessage(Order o, Security security, ExecutionMessage message, Int64 transactionId) в StockSharp.Algo.Connector.ProcessTransactionMessage(Order order, Security security, ExecutionMessage message, Int64 transactionId) в StockSharp.Algo.Connector.ProcessExecutionMessage(ExecutionMessage message) в StockSharp.Algo.Connector.OnProcessMessage(Message message) --- Конец трассировки внутреннего стека исключений --- 23:40:07.674| |RealTimeEmulationTrader1|RegisterOrder: 0/ RIH8@FORTS Симулятор Продажа Цена=0 Объем=1 Сост=None Бал=0 23:40:07.674| |RealTimeEmulationTrader`1|New order: 83897804/ RIH8@FORTS Симулятор Продажа Цена=0 Объем=1 Сост=Pending Бал=1 23:40:07.681| |SecurityMarketEmulator|Заявка 83897804 зарегистрирована. 23:40:07.681| |SecurityMarketEmulator|Заявка 83897804. Исполнение объема 1 по цене 119020. 23:40:07.681| |SecurityMarketEmulator|Заявка 83897804 полностью исполнена. 23:40:07.681| |SecurityMarketEmulator|Сделка 22 заявки 83897804 P=119020 V=1.

    lock(lockObj)
    {
....
    }

Не помогает.




Thanks:




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

loading
clippy