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

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


Версия 4.4.4
RealTimeEmulationTrader`1 Иногда при отправке ордера выскакивает вот такая ошибка.
Подскажите что можно сделать?
23:40:07.631| |SecurityMarketEmulator|Заявка 83897803 полностью исполнена.
23:40:07.631| |SecurityMarketEmulator|Сделка 21 заявки 83897803 P=119130,0 V=1.
23:40:07.631| |RealTimeEmulationTrader`1|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.SortedSet`1.Enumerator.MoveNext()
в System.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext()
в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.BuildQuoteChanges(SortedDictionary`2 quotes)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.CreateQuoteMessage(SecurityId securityId, DateTimeOffset timeStamp, DateTimeOffset time)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.AcceptExecution(DateTimeOffset time, ExecutionMessage execution, ICollection`1 result)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection`1 result)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection`1 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 |RealTimeEmulationTrader`1|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.SortedSet`1.Enumerator.MoveNext()
в System.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext()
в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.BuildQuoteChanges(SortedDictionary`2 quotes)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.CreateQuoteMessage(SecurityId securityId, DateTimeOffset timeStamp, DateTimeOffset time)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.AcceptExecution(DateTimeOffset time, ExecutionMessage execution, ICollection`1 result)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection`1 result)
в StockSharp.Algo.Testing.MarketEmulator.SecurityMarketEmulator.Process(Message message, ICollection`1 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(Tuple`2 t)
в System.Linq.Enumerable.WhereSelectListIterator`2.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| |RealTimeEmulationTrader`1|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.

Code
lock(lockObj)
{
....
}

Не помогает.



Thanks:




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

loading
clippy