Добрый день.
Хочу разобраться по теме быстродействия.
Записал логи прохождения пары заявок, вот одна из них:
Цитата:
15:09:39.739 [Sending New Order] SRZ1 Buy Price: 0 Qty: 1 Thread: null
15:09:39.764 [Sending New Order] SRZ1 quikOrderID:0 Thread: null
15:09:40.009 [parse_order] 5584936686 54501178 Thread: null
15:09:40.011 [_trader_OrdersChanged] 5584936686 order status Active Thread: null
15:09:40.024 [_trader_OrdersChanged] 5584936686 order Accepted Accepted Thread: null
15:09:40.109 Thread: EventDispatcher thread #мои сделки
15:09:40.112 Thread: EventDispatcher thread #заявки
15:09:40.120 [parse_order] 5584936686 54501178 Thread: EventDispatcher thread #заявки
15:09:40.124 [_trader_OrdersChanged] 5584936686 order status Done Thread: EventDispatcher thread #заявки
15:09:40.126 [_trader_OrdersChanged] 5584936686 order Filled Accepted Thread: EventDispatcher thread #заявки
15:09:40.132 [_trader_NewMyTrades] 5584936686 8412 1 Thread: EventDispatcher thread #мои сделки
15:09:40.154 Thread: EventDispatcher thread #заявки
15:09:40.157 [parse_order] 5584936686 54501178 Thread: EventDispatcher thread #заявки
15:09:40.159 [_trader_OrdersChanged] 5584936686 order status Done Thread: EventDispatcher thread #заявки
15:09:40.161 [_trader_OrdersChanged] 5584936686 order Filled Accepted Thread: EventDispatcher thread #заявки
15:09:40.165 Thread: EventDispatcher thread #заявки
15:09:40.169 [parse_order] 5584936686 54501178 Thread: EventDispatcher thread #заявки
15:09:40.171 [_trader_OrdersChanged] 5584936686 order status Done Thread: EventDispatcher thread #заявки
15:09:40.174 [_trader_OrdersChanged] 5584936686 order Filled Accepted Thread: EventDispatcher thread #заявки
Кусок кода метода парсинга ордера:
Console.WriteLine(DateTime.Now.ToString(timefmt) + " [parse_order] " + order.Id + " " + order.TransactionId + ThreadName);
switch (order.Status)
{
case StockSharp.BusinessEntities.OrderStatus.Accepted:
{
switch (order.State)
{
case OrderStates.Active:
{
Console.WriteLine(DateTime.Now.ToString(timefmt) + " " + "[_trader_OrdersChanged] "+order.Id+" order status Active"+ThreadName);
....
....Вопрос - почему так долго выполняется код между [parse_order] и [_trader_OrdersChanged] ?
Когда событие происходит в основном потоке(name = null), понятно что там может мешать что угодно.
Но когда событие идет в потоке #заявки, там нечему мешать.