private void DispatcherTimer__Tick(object sender, EventArgs e) { Logger_.Debug("Tick: {0}ms", dispatcherStopwatch_.ElapsedMilliseconds); ad_.Read(buffer_, 0, buffer_.Length); dataSource_.AppendMany( buffer_.Select( value => new Point(samples_++ / ad_.SamplingRate, value) )); double xLeftLimit = Math.Max(0, samples_ / ad_.SamplingRate - SecondsPerScreen); adDataChart_.Viewport.Visible = new Rect( xLeftLimit, -1.5, SecondsPerScreen, 3.0 ); var elapsedMs = stopwatch_.ElapsedMilliseconds; if (elapsedMs - previousTimePoint_ >= 1000) { var samplingRate = (double)samples_ / elapsedMs * 1000; Logger_.Debug("Sampling Rate: {0} / {1} = {2}", samples_, elapsedMs, samplingRate); previousTimePoint_ = elapsedMs; } }
public void DownloadAllData(List <int> stockIds, DateTime startDate, DateTime endDate) { IDailyDownloader downloader = new ShDailyDownloader(); StockMongoDBSaver dbsaver = new StockMongoDBSaver(); dbsaver.BeforeAdd(); foreach (int id in stockIds) { Logger_.Log("Download data of stock: " + id); downloader.DownloadData(dbsaver, id, startDate, endDate); } Logger_.Log("Download all data finished!"); }