Коллекция была изменена после создания экземпляра перечислителя.
Версия 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)
{
....
}
Не помогает.