public static void section_data_1min_task() { Console.WriteLine("section_data_1min_task started!"); //while(true) //{ try { System.Net.WebRequest req = System.Net.HttpWebRequest.Create(temp.Settings1.Default.TIMCC_uri); System.IO.Stream stream = req.GetResponse().GetResponseStream(); System.IO.TextReader rd = new System.IO.StreamReader(stream); System.IO.TextWriter wr = new System.IO.StreamWriter(Util.CPath(AppDomain.CurrentDomain.BaseDirectory + "tmp.xml")); wr.Write(rd.ReadToEnd()); wr.Flush(); wr.Close(); rd.Close(); stream.Close(); wr.Dispose(); rd.Dispose(); stream.Dispose(); Ds ds = five_min_section_parser(Util.CPath(AppDomain.CurrentDomain.BaseDirectory + "tmp.xml")); Curr5minSecDs = ds; string dest; if ((dest = getSaveDirFileName(ds.tblFileAttr[0].time)) != "") // new 5 min data { Console.WriteLine("section_data_1min_task: new section data->" + ds.tblFileAttr[0][0].ToString()); System.IO.File.Copy(Util.CPath(AppDomain.CurrentDomain.BaseDirectory + "tmp.xml"), dest,true); if (OnNewTravelData != null) { calcuate_travel_time(); OnNewTravelData(RGSConfDs); try { NotifyDisplayTask(); } catch (Exception ex) { Console.WriteLine("section_data_1min_task:" + ex.Message); } } } } catch (Exception ex) { Console.WriteLine("section_data_1min_task:" + ex.Message + ex.StackTrace); try { if (Curr5minSecDs == null || System.Math.Abs(((TimeSpan)(System.DateTime.Now - Curr5minSecDs.tblFileAttr[0].time)).Minutes) >= 20) { lock (RGSConfDs.tblRGS_Config) { foreach (temp.Ds.tblRGS_ConfigRow r in RGSConfDs.tblRGS_Config.Rows) { r.RowError = "Timcc 連線資料異常!"; r.mode = 1; //手動 Console.WriteLine("寫入 RowErr"); } if (OnNewTravelData != null) { try { DataSet ds1 = new DataSet(); ds1.Tables.Add(Util.getPureDataTable(RGSConfDs.tblRGS_Config)); OnNewTravelData(ds1); NotifyDisplayTask(); } catch (Exception ex1) { Console.WriteLine("section_data_1min_task:" + ex1.StackTrace); } } } System.Console.WriteLine("Timcc 連線異常!"); } } catch (Exception ex1) { Console.WriteLine(ex1.Message); } } // System.GC.Collect(); //System.GC.WaitForPendingFinalizers(); //System.Threading.Thread.Sleep(60 * 1000); //}// }
static void threadComsumeMemeTask() { byte[]bs; while (true) { bs = new byte[10000]; sdata s1 = new sdata(); sdata s2 = new sdata(); System.Net.WebRequest req = System.Net.HttpWebRequest.Create(temp.Settings1.Default.TIMCC_uri); System.IO.Stream stream = req.GetResponse().GetResponseStream(); System.IO.TextReader rd = new System.IO.StreamReader(stream); System.IO.TextWriter wr = new System.IO.StreamWriter(Util.CPath(AppDomain.CurrentDomain.BaseDirectory + "tmp.xml")); wr.Write(rd.ReadToEnd()); wr.Flush(); wr.Close(); rd.Close(); stream.Close(); wr.Dispose(); rd.Dispose(); stream.Dispose(); Ds ds = five_min_section_parser(Util.CPath(AppDomain.CurrentDomain.BaseDirectory + "tmp.xml")); // Curr5minSecDs.Dispose(); Curr5minSecDs = ds; System.Threading.Thread.Sleep(1000); } }
public static Ds five_min_section_parser(string uri) { System.Xml.XmlReader rd = null; Ds ds = new Ds(); using (rd = System.Xml.XmlTextReader.Create(uri)) { while (rd.Read()) { if (rd.Name == "traffic_data" && rd.NodeType == System.Xml.XmlNodeType.Element) { Ds.tblSecTrafficDataRow r = ds.tblSecTrafficData.NewtblSecTrafficDataRow(); string dir = ""; switch (System.Convert.ToString(rd["directionId"])) { case "1": dir = "E"; break; case "2": dir = "W"; break; case "3": dir = "S"; break; case "4": dir = "N"; break; } r.directionId = dir; r.end_location = System.Convert.ToString(rd["end_location"]); r.end_milepost = System.Convert.ToUInt32(rd["end_milepost"]); r.expresswayId = rd["expresswayId"].ToString(); r.freewayId = rd["freewayId"].ToString(); r.from_location = rd["from_location"].ToString(); r.from_milepost = System.Convert.ToUInt32(rd["from_milepost"]); r.section_lower_limit = System.Convert.ToUInt32(rd["section_lower_limit"]); r.section_upper_limit = System.Convert.ToUInt32(rd["section_upper_limit"]); r.travel_time = System.Convert.ToSingle(rd["travel_time"]); ds.tblSecTrafficData.AddtblSecTrafficDataRow(r); } else if (rd.Name == "file_attribute" && rd.NodeType == System.Xml.XmlNodeType.Element) ds.tblFileAttr.AddtblFileAttrRow(System.Convert.ToDateTime(rd["time"])); } rd.Close(); } return ds; }