private void SaveQuoteProc(object sender, ElapsedEventArgs e) { var timer = sender as Timer; timer.Stop(); var dictBuffer = new Dictionary <Tuple <string, DateTime>, Tuple <double, double> >(); while (!_queQuote.IsEmpty) { QuoteInfoEventArgs item = null; _queQuote.TryDequeue(out item); var dayFormat = item.Timestamp; var key = new Tuple <string, DateTime>(item.Symbol, dayFormat); if (!dictBuffer.ContainsKey(key)) { dictBuffer[key] = new Tuple <double, double>(item.Ask, item.Bid); } } var items = dictBuffer.Select(i => new Tuple <string, double, double, DateTime> (i.Key.Item1, i.Value.Item1, i.Value.Item2, i.Key.Item2)); UpdateQuote(items); if (EnableRunning) { timer.Start(); } }
void WhenNewQuote(object sender, QuoteInfoEventArgs e) { var handler = OnNewQuote; if (handler != null) { handler(sender, e); } }
void WhenNewQuote(object sender, QuoteInfoEventArgs e) { _queQuote.Enqueue(e); }