private void FirstPing() { var t = new Task(() => { Parallel.For(0, mainTable.Count, (i, state) => { if (cts_PingTask.IsCancellationRequested) { state.Stop(); return; } if (IPFormatter.IsIPAddress(mainTable[i].HostsName)) //反查DNS { PingOne(i); if (cts_PingTask.IsCancellationRequested) { state.Stop(); return; } mainTable[i].HostsName = NetTest.GetHostName(IPAddress.Parse(mainTable[i].HostsName), ReverseDNSTimeout); } else { var ip = NetTest.GetIP(mainTable[i].HostsName); if (cts_PingTask.IsCancellationRequested) { state.Stop(); return; } if (ip != null) { mainTable[i].Endpoint = ip.AddressFamily == AddressFamily.InterNetwork ? $@"{ip}:{rawTable[i].Port}" : $@"[{ip}]:{rawTable[i].Port}"; } PingOne(i); } if (cts_PingTask.IsCancellationRequested) { state.Stop(); } }); //notifyIcon1.ShowBalloonTip(1000, ExeName, @"载入完毕", ToolTipIcon.Info); }); PingTasks.Add(t); t.Start(); }
private void FirstPing() { var t = new Task(() => { Parallel.For(0, mainTable.Count, (i, state) => { try { cts_PingTask.Token.ThrowIfCancellationRequested(); } catch (OperationCanceledException) { state.Stop(); return; } if (IPFormatter.IsIPv4Address(mainTable[i].HostsName)) //反查DNS { PingOne(i); try { cts_PingTask.Token.ThrowIfCancellationRequested(); } catch (OperationCanceledException) { state.Stop(); return; } mainTable[i].HostsName = NetTest.GetHostName(IPAddress.Parse(mainTable[i].HostsName), ReverseDNSTimeout); } else { var ip = NetTest.GetIP(mainTable[i].HostsName); try { cts_PingTask.Token.ThrowIfCancellationRequested(); } catch (OperationCanceledException) { state.Stop(); return; } if (ip != null) { mainTable[i].Endpoint = $@"{ip}:{rawTable[i].Port}"; } PingOne(i); } try { cts_PingTask.Token.ThrowIfCancellationRequested(); } catch (OperationCanceledException) { state.Stop(); } }); //notifyIcon1.ShowBalloonTip(1000, ExeName, @"载入完毕", ToolTipIcon.Info); }); PingTasks.Add(t); t.Start(); }