← Zurück

Медленное обновление стакана

Здравствуйте!

Подскажите, в чем может быть проблема, при обновлении стакана. Стакан обновляется очень медленно. Пока в программе обновиться стакан, в Квике обновления произойдут несколько раз. Настройки в quik установлены вот так: [excel] timeout=10

Вот код:

stakanContent.DataContext = Quotes;

trader.RegisterQuotes(Security); stakan.QuotesChanged += StakanQuotesChanged; void StakanQuotesChanged(OrderDirections arg1, IDictionary<int, Quote> arg2) { .......

this.GuiAsync(()=> { Quotes.Clear(); Quotes.AddRange(quote.Select(q => new SampleQuote(q.Price,q.Bid,q.Ask,q.Stop)).OrderByDescending(p=> p.Price)); });

}

War dieses Thema hilfreich?

Thema teilen

Kommentare (7)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

artemox
artemox

Чтобы локализовать проблему, на Вашем месте я бы сделал вывод в лог события QuotesChanged (с отключенным ГУИ)

Mikhail Sukhov
Mikhail Sukhov

Dimarik: Здравствуйте!

Подскажите, в чем может быть проблема, при обновлении стакана. Стакан обновляется очень медленно. Пока в программе обновиться стакан, в Квике обновления произойдут несколько раз.

this.GuiAsync(()=> { Quotes.Clear(); Quotes.AddRange(quote.Select(q => new SampleQuote(q.Price,q.Bid,q.Ask,q.Stop)).OrderByDescending(p=> p.Price)); });

}

Подозреваю что это пример Sample. Там обновление идет по таймеру, а не по факту.

Dimarik
Dimarik Autor

Нет. В Sample в нет поля Stop. Это просто похожий участок кода. В моем коде нет таймера.

Еще раз привожу код:

// Привязка данных к GUI stakanContent.DataContext = Quotes;

// Регистрация котировок trader.RegisterQuotes(Security); stakan.QuotesChanged += StakanQuotesChanged;

void StakanQuotesChanged(OrderDirections arg1, IDictionary<int, Quote> arg2) { // Здесь идет простая обработка стакана

  this.GuiAsync(()=>
            {
                    Quotes.Clear();
                    Quotes.AddRange(quote.Select(q => new SampleQuote(q.Price,q.Bid,q.Ask,q.Stop)).OrderByDescending(p=> p.Price));
             });

}

Так в чем может быть проблема?

Dimarik
Dimarik Autor

Друг оставь покурить, а в ответ ТИШИНА :(

Mikhail Sukhov
Mikhail Sukhov

Dimarik: Друг оставь покурить, а в ответ ТИШИНА :(

А вот этот ответ чем не устроил http://stocksharp.com/posts/m/5077/

Dimarik
Dimarik Autor

В принципе - идея здравая. Только не совсем понятно что писать в лог? Выводить туда стакан? Тогда с чем его сравнивать. Михаил, скажите а Ваши библиотеки будут работать если приложение будет написано на WinForms?

Mikhail Sukhov
Mikhail Sukhov

Dimarik: В принципе - идея здравая. Только не совсем понятно что писать в лог? Выводить туда стакан? Тогда с чем его сравнивать. Михаил, скажите а Ваши библиотеки будут работать если приложение будет написано на WinForms?

Выводить дельту времени. Да будут.