void PING(object selectedItem) { if (lokpp) { return; } lokpp = true; _ping = new ViewModel.PING(); _pingPREPARE = new PING_prepare(_ping); edit.ping = ""; if (edit.http == null) { return; } _pingPREPARE.Task_Completed += _pingPREPARE_Task_Completed; _pingPREPARE.asyncGET(edit.http); }
string ping_all(CancellationToken token, List <ParamCanal> myLIST) { if (loc.autoping) { return(""); } loc.autoping = true; int ct_channel = 0; data.ping_all = myLIST.Count; //Trace.WriteLine("----Старт ..."); if (Event_Print != null) { Event_Print("Старт ..."); } foreach (var i in myLIST) { //Trace.WriteLine("p="+i.name.ToString()+" size="+ myLIST.Count); if (token.IsCancellationRequested) { break; } ; ct_channel++; data.ct_ping = ct_channel; if (Event_Print != null) { Event_Print(" ping " + i.name.ToString()); } //Trace.WriteLine(data.ct_ping.ToString() + " ping " + i.name.ToString()); if (i.http == null || i.http == "") { continue; } Regex regex0 = new Regex("------"); var match0 = regex0.Match(i.name); if (match0.Success) { continue; } _ping.done = false; _pingPREPARE.Task_Completed += _pingPREPARE_Task_Completed; result_task = ""; Regex regex1 = new Regex("http:"); Regex regex2 = new Regex("https:"); Regex regex3 = new Regex("udp:"); Regex regex4 = new Regex("rtmp:"); Regex regex5 = new Regex("mms:"); var match1 = regex1.Match(i.http); var match2 = regex2.Match(i.http); var match3 = regex3.Match(i.http); var match4 = regex4.Match(i.http); var match5 = regex5.Match(i.http); if (match1.Success || match2.Success || match3.Success || match4.Success || match5.Success) { int ct = 0; _pingPREPARE.asyncGET(i.http); while (result_task == "") { Thread.Sleep(200); ct++; data.ping_waiting = ct; if (ct > 100) { result_task = "тайм аут"; break; } if (token.IsCancellationRequested) { break; } ; } } else { result_task = "НЕ ПОДДЕРЖИВАЕТСЯ"; } var item = ViewModelMain.myLISTfull.Find(x => x.Compare() == i.Compare()); data.ping_waiting = 0; if (item != null) { if (_ping.result.Length < 2000) { string tmp = _ping.result.Replace('\r', ';'); tmp = tmp.Replace("#EXTM3U;", ""); tmp = tmp.Replace("#EXTM3U", ""); item.ping = tmp.Replace('\n', ';'); if (result_task == "НЕ ПОДДЕРЖИВАЕТСЯ" || result_task == "тайм аут") { item.ping = result_task; if (Event_Print != null) { Event_Print(result_task + " " + i.name); } } } else { item.ping = "большой размер ответа " + _ping.result.Length.ToString(); } } }//for if (Event_Print != null) { Event_Print("end"); } return(""); }