/// <summary> /// H5线程 /// </summary> /// <param name="reconnect"></param> private void ThreadH5Connect(bool reconnect) { if (AddInUtility.H5) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(this.addInContainer.Language.ToString()); ShowMsg(Properties.Resources.InitH5Message); try { IH5Adapter h5 = this.communication.DBFactory.GetH5Data(); PerformStep(); } catch (H5Exception exp) { string noteInfo = Properties.Resources.InitH5Fail + "\r\n(" + exp.ToString() + ")"; ShowMsg(noteInfo); return; } ShowMsg(Properties.Resources.InitH5OK); Thread.Sleep(1000); PerformStep(); } if (!reconnect) //第一次 { ThreadStart ts = new ThreadStart(ThreadT2Connect); Thread t = new Thread(ts); t.Start(); } else { FinishStep(); } }
/// <summary> /// 初始化H5数据 /// </summary> private void InitH5() { if (!AddInUtility.H5) { return; } new Thread(delegate() { try { List <int> marketTypes = new List <int>(); XmlDocument xmlDocument = new XmlDocument(); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreComments = true; XmlReader xmlReader = XmlReader.Create("h5sdk.xml", settings); xmlDocument.Load(xmlReader); foreach (XmlNode xmlNode in xmlDocument.DocumentElement.ChildNodes) { foreach (XmlAttribute xmlAttribute in xmlNode.Attributes) { if (xmlAttribute.Name == "mkttype") { marketTypes.Add(Int32.Parse(xmlAttribute.Value.Substring(2, xmlAttribute.Value.Length - 2), NumberStyles.HexNumber)); } } } IH5Adapter h5Adapter = this.communication.DBFactory.GetH5Data(); if (null == h5Adapter) { return; } else { ISQLiteDataHandler sqlDataHandler = new SQLiteDataHandler(Path.Combine(Application.StartupPath, "Quotation.db3"), "12345678"); string cmdText = "Delete From SecurityCollection"; sqlDataHandler.ExecuteNonQuery(cmdText); SQLiteParameter[] parameters = new SQLiteParameter[0]; List <string> batchSqls = new List <string>(); foreach (int marketType in marketTypes) { int errno = 0; IMarketOverview mktOverview = h5Adapter.GetSupportMarketInfo(marketType, 2000, ref errno, false); int totalCount = mktOverview.TotalCount; for (int stockIndex = 0; stockIndex < totalCount; stockIndex++) { IStockInitInfo stockInitInfo = mktOverview.GetStockInitInfo(stockIndex); string insertSql = "Insert Into SecurityCollection Values( '" + stockInitInfo.StockCode + "', '" + stockInitInfo.StockName + "', " + Convert.ToString(stockInitInfo.MarketType) + ", " + Convert.ToString(stockInitInfo.CodeType) + ", " + Convert.ToString(stockInitInfo.StockStatus) + " )"; batchSqls.Add(insertSql); } } sqlDataHandler.ExecuteBatchNonQuery(batchSqls); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }).Start(); }