В событии NewSecurities в цикле получаю security, стакан, добавляю к нему события QuotesChanged и UpdateFinished и вставляю стакан в коллекцию. RegisterQuotes происходит, но события не вызываются.
Если работаю с одним инструментом и стакан - переменная класса, то все работает. Что я не так делаю?
Comentários (4)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Приведите код обработчика. Не понятно с описания.
mysec.security.Equals(security as Security)) < 0) { MarketDepth stakan = new MarketDepth(security); stakan.QuotesChanged += (odr, quotes) => { foreach (Quote qt in quotes.Values) { to_log("{0} {1} {2} {3}".Put(stakan.Security.Id, odr, qt.Price, qt.Volume)); } }; stakan.UpdatingStarted += () => { to_log("{0} stakan.UpdatingStarted".Put(security.Id)); }; stakan.UpdatingFinished += () => { to_log("{0} stakan.UpdatingFinished".Put(stakan.Security.Id)); StakanUpdated(stakan); }; AddSecurities(security, stakan);
public void AddSecurities(Security security, MarketDepth stakan) { if (security == null) throw new ArgumentNullException("security"); int _daily_sqlId = 0; try { _trader.RegisterQuotes(security); } catch (Exception ex) { to_log(ex.Message); } Securities.Add(security); _security_stakans.Add(security, stakan); to_log("Добавлен инструмент {0}".Put(security.Id)); }
После этого стаканы в квике регитрируются, но событий не происходит. Не происходити события ProcessUnknownDdeData. После закрытия квика в окне сообщений Квика - переполнена очередь сообщений по инструмкенту.
Иду по шагам:
Спасибо. Получилось