private static void RouterAssist(RouterInformation router) { Ping p = new Ping(); p.PingCompleted += RouterCallback; p.SendAsync(router.IP, 650, router); // 超时.75秒 flag.WaitOne(); }
public static void DoGetRouterInformationTask() { RouterList = new List <RouterInformation>(); DataSet ds = SqlHelper.GetStoreInformation(); int count = ds.Tables[0].Rows.Count; routerComplete = new int[count]; Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < count; i++) { routerComplete[i] = 0; } for (int i = 0; i < count; i++) { RouterInformation router = new RouterInformation(); router.StoreNo = ds.Tables[0].Rows[i]["storeNo"].ToString(); router.StoreRegion = ds.Tables[0].Rows[i]["storeRegion"].ToString(); router.StoreType = ds.Tables[0].Rows[i]["storeType"].ToString(); router.IP = ds.Tables[0].Rows[i]["routerIP"].ToString(); router.I = i; router.Total = count; RouterAssist(router); } while (true) { if (count == GetArraySum(routerComplete)) { string[] clist = { "storeNo", "storeRegion", "storeType", "routerNetwork", "routerType", "date" }; DataTable dt = new DataTable(); foreach (string colName in clist) { dt.Columns.Add(colName); } int rowCount = RouterList.Count; for (int i = 0; i < rowCount; i++) { DataRow row = dt.NewRow(); row["storeNo"] = RouterList[i].StoreNo; row["storeRegion"] = RouterList[i].StoreRegion; row["storeType"] = RouterList[i].StoreType; row["routerNetwork"] = RouterList[i].RouterNetwork; row["routerType"] = RouterList[i].RouterType; row["date"] = RouterList[i].Date; dt.Rows.Add(row); } SqlHelper.CommonBulkInsert(dt, "RouterInformationTemp"); // 插入到Temp表中用做对比 sw.Stop(); double ms = sw.ElapsedMilliseconds / 1000.0; Console.WriteLine("耗时: " + ms.ToString()); break; } } }
private static void RouterCallback(object sender, PingCompletedEventArgs e) { RouterInformation router = (RouterInformation)e.UserState; router.RouterNetwork = (e.Reply.Status == IPStatus.Success) ? "Up" : "Down"; router.Date = DateTime.Now.ToString(); RouterList.Add(router); routerComplete[router.I] = 1; // 相应位置1表示已经Ping完 Console.WriteLine((router.I + 1).ToString() + "/" + router.Total.ToString() + " " + router.StoreNo + ": " + router.RouterNetwork); flag.Set(); }
private static ArrayList GetData(RouterCondition rc) { ArrayList list = new ArrayList(); DataSet ds = SqlHelper.GetRouterInformation(rc); int count = ds.Tables[0].Rows.Count; for (int i = 0; i < count; i++) { RouterInformation router = new RouterInformation(); router.StoreNo = ds.Tables[0].Rows[i]["storeNo"].ToString(); router.StoreRegion = ds.Tables[0].Rows[i]["storeRegion"].ToString(); router.StoreType = ds.Tables[0].Rows[i]["storeType"].ToString(); router.RouterNetwork = ds.Tables[0].Rows[i]["routerNetwork"].ToString(); router.RouterType = ds.Tables[0].Rows[i]["routerType"].ToString(); router.Date = ds.Tables[0].Rows[i]["date"].ToString(); list.Add(router); } return list; }
private static void RouterAssist(RouterInformation router) { Ping p = new Ping(); p.PingCompleted += RouterCallback; p.SendAsync(router.IP, 500, router); flag.WaitOne(); }
public static void DoGetRouterInformationTask() { RouterList = new List<RouterInformation>(); DataSet ds = SqlHelper.GetStoreInformation(); int count = ds.Tables[0].Rows.Count; routerComplete = new int[count]; Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < count; i++) { routerComplete[i] = 0; } for (int i = 0; i < count; i++) { RouterInformation router = new RouterInformation(); router.StoreNo = ds.Tables[0].Rows[i]["storeNo"].ToString(); router.StoreRegion = ds.Tables[0].Rows[i]["storeRegion"].ToString(); router.StoreType = ds.Tables[0].Rows[i]["storeType"].ToString(); router.IP = ds.Tables[0].Rows[i]["routerIP"].ToString(); router.I = i; router.Total = count; RouterAssist(router); } while (true) { if(count == GetArraySum(routerComplete)) { string[] clist = { "storeNo", "storeRegion", "storeType", "routerNetwork", "routerType", "date" }; DataTable dt = new DataTable(); foreach (string colName in clist) { dt.Columns.Add(colName); } int rowCount = RouterList.Count; for (int i = 0; i < rowCount; i++) { DataRow row = dt.NewRow(); row["storeNo"] = RouterList[i].StoreNo; row["storeRegion"] = RouterList[i].StoreRegion; row["storeType"] = RouterList[i].StoreType; row["routerNetwork"] = RouterList[i].RouterNetwork; row["routerType"] = RouterList[i].RouterType; row["date"] = RouterList[i].Date; dt.Rows.Add(row); } SqlHelper.CommonBulkInsert(dt, "RouterInformationTemp"); // 插入到Temp表中用做对比 sw.Stop(); double ms = sw.ElapsedMilliseconds / 1000.0; Console.WriteLine("耗时: " + ms.ToString()); break; } } }