private void CalculateData() { //对每个股票进行分析 StockSQL.DeleteRule(); analyse_now = 0; foreach (StockData stockheader in StockApp.allstock.Values) { //初始化股票 StockData stock = StockSQL.GetStockDetail_2(stockheader.code, stockheader.name); UtilLog.AddInfo(TAG, "Start to calculate " + stock.code); int stock_length = stock.items.Length; //第几个分析的股票 analyse_now++; CalBuy(stock); CalSell(stock); prog.SetProgress(analyse_now * 100 / analyse_total); //释放内存 if (analyse_now % 100 == 0) { UtilLog.AddInfo(TAG, "Start to free memory"); GC.Collect(); UtilLog.AddInfo(TAG, "Free memory done!"); System.Threading.Thread.CurrentThread.Join(500); } UtilLog.AddInfo(TAG, analyse_now + "/" + analyse_total + ":" + stock.name + "(" + stock.code + ")" + " calculate finished "); } RuleScore.SetRuleScore(); RuleScore.SetAllPreScore(); lbl_status.Text = "Calculation Done"; }
private void dg_list_MouseDoubleClick(object sender, MouseEventArgs e) { dg_detail.Rows.Clear(); DataGridViewRow row = null; try { row = this.dg_list.Rows[this.dg_list.SelectedCells[0].RowIndex]; } catch (Exception ex) { Console.WriteLine(ex.ToString()); return; } StockData stock = StockSQL.GetStockDetail_2((string)row.Cells[0].Value, (string)row.Cells[1].Value); lbl_code.Text = stock.code; lbl_name.Text = stock.name; foreach (StockItem s in stock.items) { dg_detail.Rows.Add(s.ToRowInfo()); } ShowDetail(true); }